假设我有两个五边形,A
和B
顶点
(x 1 ,y 1 ),(x 2 ,y 2 ),... {x 5 ,y 5 )A
和
(x' 1 ,y' 1 ),...(x' 5 ,y' 5 )for B
。
我知道顶点的对应关系:
(x 1 ,y 1 )< ==> (x' 1 ,y' 1 )
类似地所有顶点。
我需要一个程序将A
内的所有点转换为B
。
我在Transform quadrilateral into a rectangle?中发现了类似的四边形问题。
就我而言,它们不是四边形,而是五边形。我真的想要一个适用于任意数量的顶点(五边形,六边形等)的解决方案。
答案 0 :(得分:3)
如果您要将三角形映射到三角形,则可以使用barycentric coordinates。
要将多边形映射到多边形,可以使用广义重心坐标。这些有几个家族。其中一个系列 - 平均值坐标 - 在this paper和followup中引入。在过去十年中爆发的整个主题的良好参考书目可以找到here。另一篇描述所谓的谐波和Wachpress坐标的早期论文是here。
答案 1 :(得分:0)
我认为您只是将多边形径向细分为三角形(从中心制作披萨切片,向外延伸到顶点),然后找到原始多边形中任意点的(u, v)
坐标。
获得该信息后,在第二个多边形中找到相应的三角形将是微不足道的(您已经知道哪些点构成其顶点)并且三角形的(u, v)
映射已被充分记录。
答案 2 :(得分:0)
我建议,但我无法证明,对于五边形(但可能不是六边形和更高的n多边形),当为每个顶点着色时,在五边形内部可以从该顶点看到一组点颜色,那么它们的交叉点总是非空的,您可以从该交叉点任意选择蜘蛛网的中心(或变形的披萨,如果你愿意),然后使用三角形映射。