我一直在試圖找到一個算法來計算兩個三角形的交點面積,但我找不到任何。任何人都可以提供一個線索如何編寫這個算法?計算兩個三角形的交點面積
我想是這樣的:
double getAreaOfIntersection(Vector2 p1,Vector2 p2, Vector2 p3,Vector2 p4,Vector2 p5,Vector2 p6)
其中的pX表示2個三角形。
我一直在試圖找到一個算法來計算兩個三角形的交點面積,但我找不到任何。任何人都可以提供一個線索如何編寫這個算法?計算兩個三角形的交點面積
我想是這樣的:
double getAreaOfIntersection(Vector2 p1,Vector2 p2, Vector2 p3,Vector2 p4,Vector2 p5,Vector2 p6)
其中的pX表示2個三角形。
你可以先計算其通過裁剪算法描述相交區域的多邊形,例如:
然後,你將計算得到的凸多邊形,這是相當容易的領域,看,例如,在這裏:
確定羯羊或不點位於內給定的多邊形是容易的(而且更容易爲三角形,因爲這些是簡單的多邊形)。您可以使用繞線編號算法(以及用於簡單多邊形的交叉點編號算法),該算法已得到實施並很好地解釋了here。
使用這個,你可以得到你的交集多邊形的所有頂點:
您需要將循環在你的邊緣找到所有的交點,所以這應該是速度不夠快,只要你只是想確定三角形的交叉點,但我不會建議嘗試以這種方式找到任意多邊形的交點。
true - 我刪除了相應的評論 –
爲什麼會有投票?這對我來說很好。 –