如果我有一個平面,讓我們說xy平面和一個矩形棱鏡,可以任意旋轉/平移三維。有沒有很酷的算法/方法可以用來確定兩者之間的交集區域?計算平面和矩形棱鏡之間的交點面積
2
A
回答
2
一種方法是明確找到棱鏡和平面之間的交點R
的多邊形區域,三角形R
並對三角形的面積求和以給出總交集區域。
可以通過在棱鏡和平面的邊緣之間執行一系列line-plane intersection tests找到相交多邊形的頂點R
。
基於平面/棱鏡的相對方向,相交多邊形可以採取許多不同的配置(即,它不總是矩形!)。給定一個普通的棱鏡,相交區域應該始終是凸的,允許triangulation to be obtained as a simple fan。
給定R
的三角剖分,總交集面積就是三角形區域的總和。
1
一旦你有了多邊形區域的交集,你不需要對它進行三角化來計算它的面積。還有一個更簡單的算法:
float area = 0.0f;
// Run through all segments
for (int i = 0; i < corners.Length; i++)
{
// Get end points of segments
Vector2 A = corners[i];
Vector2 B = corners[(i+1) % corners.Length];
// Add the signed(!) area of a quadrangle with two corners A, B
// and two corners with same y values on the y axis
//
// |---------A
// | + /
// |-------B
//
// |-------B
// | - \
// |---------A
//
area += 0.5f * (A.x + B.x) * (B.y - A.y);
}
相關問題
- 1. 計算矩形的周長和麪積
- 2. 用於矩形棱鏡體積計算的PL/SQL BIND VARIABLES
- 3. C - 計算兩個矩形之間的面積
- 4. 計算相交矩形的周長和麪積?
- 5. C Plus Plus:計算矩形和三角形的面積
- 6. 使用Java Graphics2D計算點和麪積之間的距離
- 7. 計算在graphics.py中繪製的矩形的面積和周長
- 8. 計算給定面積和周長的矩形的寬度
- 9. 計算兩個三角形的交點面積
- 10. 計算平面上封閉多邊形的面積
- 11. 矩形棱鏡碰撞
- 12. 計算多邊形的最小面積矩形
- 13. 在3D空間中計算平面幾何的邊界矩形
- 14. 計算面積
- 15. 計算面積
- 16. 計算面積和周長
- 17. 計算二維形狀的面積
- 18. 2D的計算面積形狀
- 19. 計算多邊形的面積
- 20. 計算三角形面積的錯誤?
- 21. Android計算多邊形的面積
- 22. 計算多邊形的面積
- 23. 計算三角形的面積
- 24. 如何計算凸多面體和另一個多面體之間的交點?
- 25. 計算點和矩形之間的帶符號距離
- 26. 計算屬性在棱鏡
- 27. 三維空間中n面平面多邊形的面積
- 28. 矩形棱鏡的3D旋轉
- 29. MKPolygon面積計算
- 30. 表面積計算