2015-05-18 172 views
-1

我一直在試圖找到一個算法來計算兩個三角形的交點面積,但我找不到任何。任何人都可以提供一個線索如何編寫這個算法?計算兩個三角形的交點面積

我想是這樣的:

double getAreaOfIntersection(Vector2 p1,Vector2 p2, Vector2 p3,Vector2 p4,Vector2 p5,Vector2 p6) 

其中的pX表示2個三角形。

回答

3

你可以先計算其通過裁剪算法描述相交區域的多邊形,例如:

Sutherland-Hodgman algorithm

然後,你將計算得到的凸多邊形,這是相當容易的領域,看,例如,在這裏:

Area of a Convex Polygon

+0

爲什麼會有投票?這對我來說很好。 –

1

確定羯羊或不點位於內給定的多邊形是容易的(而且更容易爲三角形,因爲這些是簡單的多邊形)。您可以使用繞線編號算法(以及用於簡單多邊形的交叉點編號算法),該算法已得到實施並很好地解釋了here

使用這個,你可以得到你的交集多邊形的所有頂點:

您需要將循環在你的邊緣找到所有的交點,所以這應該是速度不夠快,只要你只是想確定三角形的交叉點,但我不會建議嘗試以這種方式找到任意多邊形的交點。

+0

true - 我刪除了相應的評論 –