Matlab 中的 Voronoi 图:指定单元格边数的上限
Voronoi diagrams in Matlab: Specifying upper limit on number of edges of cells
我需要创建一个最终将在单独代码中使用的 Voronoi 图。这个单独的代码只能处理最多 n=6(六边形)的多边形。
Matlab 是否提供指定 Voronoi 单元可以包含的边数上限的功能?或者,是否有指定边缘限制的迂回方式?
不,不存在这种可能性,因为它违反了 Voronoi 图的定义,更一般地说,它没有任何意义。
Voronoi 图有一个精确的定义,允许多边形单元格的边数超过最小数量,这取决于 space 维度。如果您限制边的最大数量,那么您就不再进行 Voronoi 细分。所以没有理由在 voronoi
函数中实现该功能。
然后,如果我们假设您讨论的是二维情况,欧拉定理指出每个单元格的平均边数必须为 6。如果您禁止单元格具有 更多 多于 6 条边,那么为了满足 average=6 约束,您还必须禁止 less 少于 6 条边的单元格,因此只允许 exactly 6 条边。
然后您必须定义如何在细分算法中应用此约束,如果不是不可能的话,这是极其复杂的。这就是此功能未在其他地方实现的原因。
我强烈建议您检查其他选项,而不是使用只能处理所有可能性的一小部分的软件 and/or 非 Voronoi 镶嵌。
我需要创建一个最终将在单独代码中使用的 Voronoi 图。这个单独的代码只能处理最多 n=6(六边形)的多边形。
Matlab 是否提供指定 Voronoi 单元可以包含的边数上限的功能?或者,是否有指定边缘限制的迂回方式?
不,不存在这种可能性,因为它违反了 Voronoi 图的定义,更一般地说,它没有任何意义。
Voronoi 图有一个精确的定义,允许多边形单元格的边数超过最小数量,这取决于 space 维度。如果您限制边的最大数量,那么您就不再进行 Voronoi 细分。所以没有理由在 voronoi
函数中实现该功能。
然后,如果我们假设您讨论的是二维情况,欧拉定理指出每个单元格的平均边数必须为 6。如果您禁止单元格具有 更多 多于 6 条边,那么为了满足 average=6 约束,您还必须禁止 less 少于 6 条边的单元格,因此只允许 exactly 6 条边。
然后您必须定义如何在细分算法中应用此约束,如果不是不可能的话,这是极其复杂的。这就是此功能未在其他地方实现的原因。
我强烈建议您检查其他选项,而不是使用只能处理所有可能性的一小部分的软件 and/or 非 Voronoi 镶嵌。