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

时间:2012-06-10 02:26:37

标签: math graphics geometry computer-vision linear-algebra

假设我有两个五边形,AB顶点

(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?中发现了类似的四边形问题。

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

3 个答案:

答案 0 :(得分:3)

如果您要将三角形映射到三角形,则可以使用barycentric coordinates

要将多边形映射到多边形,可以使用广义重心坐标。这些有几个家族。其中一个系列 - 平均值坐标 - 在this paperfollowup中引入。在过去十年中爆发的整个主题的良好参考书目可以找到here。另一篇描述所谓的谐波和Wachpress坐标的早期论文是here

答案 1 :(得分:0)

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

获得该信息后,在第二个多边形中找到相应的三角形将是微不足道的(您已经知道哪些点构成其顶点)并且三角形的(u, v)映射已被充分记录。

答案 2 :(得分:0)

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