手頭的問題是關於3D空間內2D增長的科學模擬的一部分。 2D形狀通過將(三角形)片段添加到先前生長的形狀而生長。如何計算凸多面體和另一個多面體之間的交點?
注意,在3D實際段的厚度,因此,我的代碼實際上三棱鏡工作。
在某一點上,這些2D形狀(無論相對方向和位置)會發生碰撞。
如果其中一個新的三棱鏡與先前插入的段相交,我只想插入與先前插入的段不相交的段的「部分」。如下所示,標記爲T1和T2的部分。
在第一步驟中,我計算所有交點邊緣面。然後,我使用3D中的CGAL Delaunay Triangulation軟件包將合成點集合網格化爲四面體網格。作爲最後一步,我扔掉所有與先前插入的段相交的四面體。 這在大多數情況下都能很好地工作 - 但現在我確信這個想法不能用於基本原因。
什麼是更可靠的計算方法?
我會考慮你的方法。然而,有兩件事:1.我不是在尋找交集,我實際上是在尋找所有(當然只有那些在附近的)先前插入的段的集合中的新段的補集。 如果我有交集,我仍然不得不從新的分段中減去它。 – Merlin