2016-10-01 118 views
1

我试图找到从一个四边形到另一个四边形的粗略等价点。在四边形中找到等价点

quadrilateral equivalent point

什么是找到这一点的好方法?

任何正确的方向信息将是伟大的。

由于

+1

这是不可能的,除非(至少)一个四边形中的点与另一个中的相应点相关联。简单的例子是,如果一个四边形是一个正方形,另一个是菱形,那么你正在寻找的正方形的点位于正方形的左上角附近。你想让答案靠近钻石的左角,或者是顶角? –

+0

@CharlesBretana好吧,也许另一种想法是,第二个四边形是第一个四边形的变形(缩放,移动,倾斜,旋转等)版本。这会让问题更容易解决吗? –

+0

是的,如果对于原始四边形中的所有点(或者至少三个),则指定原始点转换成变换的四边形中的哪个点。 –

回答

0

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

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

M = S * T 

其中S2x2矩阵,它的列是向量w1w2T是其列是v1v2矩阵的逆

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

b = Q1 - M * P1 

这里澄清的是,这一切是正确的只有第四点是与改造相一致,即如果

M * P4 + b = Q4 

否则Q -quadrilateral不是P -quadrilateral的仿射变换。

0

您可以找到该点对第一个四边形的一般重心坐标,然后将重心坐标对第二个四边形应用以找到“等效”点。

有许多不同的方法可以计算一个点对四边形(或对一个n边多边形)的一般重心坐标。其中一个是Wachpress坐标,它只在多边形凸出时才起作用。对于顶点V0,V1,... Vn的凸多边形:

enter image description here

我们可以计算出Wachpress坐标点P为

enter image description here

在多边形内的(一,b,c)是三角形abc的有符号区域。

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

enter image description here

针对与顶点V *新的多边形我(或你的情况四边形)可以计算为
等效点P *

对于i = 0〜n,P * = \ summation(Wi * V * i)。