2014-06-24 115 views
1

Rectangle example如何檢測兩個多邊形是否具有相同的形狀?

我想檢查兩個多邊形(矢量數不清)是否具有相同的形狀。沒有旋轉這很容易,但我怎麼做這與旋轉的多邊形?我也需要知道旋轉角度。

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

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

這裏是類似的問題http://stackoverflow.com/q/22159897/2521214 – Spektre

回答

2

對於少量頂點,可能值得檢查每個頂點與其他頂點之間的距離。 (p1,p2),dist(p1,p3),dist(p1,p4),dist(p2,p3),dist(p2,p4)和dist(p3,p4)的方形例子。這些值將存在於每個多邊形中。將會有一個與p1設置相同距離的點,並將其設置爲p2,依此類推。

一旦你在一個多邊形頂點,其中所有連接到它的距離是相同的那些在第二多邊形然後就可以使用這些線中的一個,以確定旋轉角度。

希望有道理。

+0

這是個好主意。頂點數將是3-8。任何想法的角度呢? – Pwdr

+0

這很有道理,謝謝! – Pwdr

+0

不用擔心。祝你好運。 – Dave

相關問題