将一个多边形映射到另一个多边形



>假设我有两个五边形,AB

顶点(x 1, y

1), (x 2, y2), ...(x 5, y5) 表示A

x'1y'1), ...(x'5,y'5) 表示B .

我知道顶点的对应关系:

(x 1, y 1)

<==> (x'1,y'1

同样,所有顶点。

我需要一个程序将A中的所有点转换为B

我在将四边形

转换为矩形中发现了类似的四边形问题?。

就我而言,它们不是四边形,而是五边形。我实际上想要一个适用于任意数量的顶点(五边形、六边形等)的解决方案。

如果要将三角形映射到三角形,则将使用重心坐标。

要将面映射到面,可以使用广义重心坐标。 这些有几个家族。 本文和后续工作介绍了其中一个族——平均值坐标。 可以在这里找到整个主题的良好参考书目,该书目在过去十年中呈爆炸式增长。另一篇描述所谓谐波和Wachpress坐标的早期论文在这里。

我认为您只需将多边形径向细分为三角形(从中心制作披萨片,延伸到顶点),然后找到原始多边形中任何点的(u, v)坐标。

获得这些信息后,在第二个多边形中找到相应的三角形将变得微不足道(您已经知道哪些点构成其顶点),并且三角形的映射(u, v)有据可查。

建议,但我无法证明,对于五边形(但可能不是六边形和更高的 n 个多边形),当对于每个顶点,您在五边形内部为一组可以从该顶点看到的点着色时,它们的交点将始终是非空的,您可以选择蜘蛛网的中心(或变形的比萨饼, 如果您愿意)从该交叉点任意开始,然后使用三角形映射。

相关内容

  • 没有找到相关文章