Math 如何检测两个多边形是否具有相同的形状?

Math 如何检测两个多边形是否具有相同的形状?,math,rotation,geometry,processing,polygon,Math,Rotation,Geometry,Processing,Polygon,我想检查两个多边形(向量数不清楚)是否具有相同的形状。如果没有旋转,这很容易,但是如何使用旋转的多边形呢?我还需要知道旋转角度 boolean polygonsHaveSameShape(PVector[] polygon1, PVector[] polygon2){ … } float getRotationAngle(PVector[] polygon1, PVector[] polygon2){ … } 对于少量顶点,可能需要检查每个顶点与其他顶点之间的距离 在正方形示例中,d

我想检查两个多边形(向量数不清楚)是否具有相同的形状。如果没有旋转,这很容易,但是如何使用旋转的多边形呢?我还需要知道旋转角度

boolean polygonsHaveSameShape(PVector[] polygon1, PVector[] polygon2){
  …
}

float getRotationAngle(PVector[] polygon1, PVector[] polygon2){
  …
}

对于少量顶点,可能需要检查每个顶点与其他顶点之间的距离

在正方形示例中,dist(p1,p2)、dist(p1,p3)、dist(p1,p4)、dist(p2,p3)、dist(p2,p4)和dist(p3,p4)。每个多边形都将存在这些值。将有一个点设置为与p1和p2相同的距离,依此类推

一旦在一个多边形中有一个顶点,且与该顶点连接的所有距离与第二个多边形中的距离相同,则可以使用其中一条直线来确定旋转角度


希望这有意义。

这是个好主意。顶点数将为3–8。那你知道角度吗?不用担心。祝你好运。这里也有类似的问题