>假设我有两个五边形,A
和B
1), (x 2, y2), ...(x 5, y5) 表示A
和
(x'1, y'1), ...(x'5,y'5) 表示B
.
我知道顶点的对应关系:
(x 1, y 1)<==> (x'1,y'1)
同样,所有顶点。
我需要一个程序将A
中的所有点转换为B
。
转换为矩形中发现了类似的四边形问题?。
就我而言,它们不是四边形,而是五边形。我实际上想要一个适用于任意数量的顶点(五边形、六边形等)的解决方案。
如果要将三角形映射到三角形,则将使用重心坐标。
要将面映射到面,可以使用广义重心坐标。 这些有几个家族。 本文和后续工作介绍了其中一个族——平均值坐标。 可以在这里找到整个主题的良好参考书目,该书目在过去十年中呈爆炸式增长。另一篇描述所谓谐波和Wachpress坐标的早期论文在这里。
我认为您只需将多边形径向细分为三角形(从中心制作披萨片,延伸到顶点),然后找到原始多边形中任何点的(u, v)
坐标。
获得这些信息后,在第二个多边形中找到相应的三角形将变得微不足道(您已经知道哪些点构成其顶点),并且三角形的映射(u, v)
有据可查。
建议,但我无法证明,对于五边形(但可能不是六边形和更高的 n 个多边形),当对于每个顶点,您在五边形内部为一组可以从该顶点看到的点着色时,它们的交点将始终是非空的,您可以选择蜘蛛网的中心(或变形的比萨饼, 如果您愿意)从该交叉点任意开始,然后使用三角形映射。