【发布时间】:2012-06-10 02:26:36
【问题描述】:
假设我有两个带顶点的五边形,A 和 B
(x1, y1), (x2, y2), ... (x5, y5) 为A
和
(x'1, y'1), ... (x'5,y'5子>)为B。
我知道顶点的对应关系:
(x1, y1) (x'1, y'1 )
类似的所有顶点。
我需要一个程序将A 中的所有点转换为B。
我在Transform quadrilateral into a rectangle? 中发现了类似的四边形问题。
就我而言,它们不是四边形,而是五边形。我实际上想要一个适用于任意数量顶点(五边形、六边形等)的解决方案。
【问题讨论】:
-
多边形是严格凸的,并且顶点的三元组都是非共线的吗?我怀疑是否有一种通用算法可以将具有相同顶点数的点从一个多边形映射到另一个多边形,因为在大量退化情况下映射不会是双射的。
-
多边形不一定是凸的,而是非共线的。我在alumni.media.mit.edu/~cwren/interpolator 找到了解决方案。但是,对于凹面的情况,(实际上也是凸面的)它不适用于超过 4 个顶点。
-
理论太多了。但实际操作中,他的五边形会是凸的或近凸的,可以应用蜘蛛网拉伸算法,这里懒得解释了。
-
好的,noname,你在我打字的时候发表了评论。在凹面情况下,您实际上需要决定如何在各种凹面畸形五边形中始终如一地找到蜘蛛网中心。之后,剩下的就简单了。
-
感谢 Blender 和 Boris。目前还不知道怎么用蜘蛛网,不过我还是去看看吧。
标签: math graphics geometry computer-vision linear-algebra