在四边形中找到等价点

Finding an eqauivalent point in a quadrilateral

我正在尝试找到从一个四边形到另一个四边形的粗略等效点。

quadrilateral equivalent point

找到这个点有什么好的方法吗?

任何正确方向的信息都会很棒。

谢谢

设点为 [P1, P2, P3, P4] 并假设它们通过 x -> Mx + b 形式的仿射变换转换为 [Q1, Q2, Q3, Q4],其中 M2x2 矩阵和 b 是一个常数向量。这个想法是找到 M 并将转换应用于 P 以获得 Q.

v1 = P2 - P1v2 = P3 - P1w1 = Q2 - Q1w2 = Q3 - Q1。然后 M 是将 [v1, v2] 应用于 [w1, w2] 的线性变换。找到 M 的一种方法是计算矩阵乘积

M = S * T

其中 S2x2 矩阵,其列是向量 w1w2T 列为 v1v2.

的矩阵

关于位移矢量b,可以计算为

b = Q1 - M * P1

这里要说明的是,只有第四点与变换一致,即如果

,所有这些都是正确的
M * P4 + b = Q4

否则Q-四边形不是P-四边形的仿射变换。

你可以找到第一个四边形的点的一般重心坐标,然后应用第二个四边形的重心坐标来找到 "equivalent" 点。

有许多不同的方法可以计算一个点相对于四边形(或相对于 n 边多边形)的一般重心坐标。其中之一是 Wachpress 坐标,它仅在多边形为凸面时有效。对于顶点为 V0、V1、...Vn 的凸多边形:

我们可以将多边形内点 P 的 Wachpress 坐标计算为

其中 A(a,b,c) 是三角形 abc 的有符号面积。

然后,我们可以计算出P的重心坐标为

相对于具有顶点 V*i(或您的情况下的四边形)的新多边形的等效点 P* 可以计算为

P* = \summation(Wi * V*i) for i=0~n.