我想切片相對於無限平面的3D模型(在WPF中)。我正在檢查邊緣是否與無限平面相交。如果屬實,我會在交叉位置創建一個新點,所以我得到了幾個要生成上限的點,以便在切片後關閉模型。例如,如果這是橫截面,則結果如下: 注意:三角測量不重要。我只需要三角形。切片3D模型?
如果不能做到這一點,我認爲的方式(這似乎是如此),則應該如何我這麼做?切片後開發人員如何限制對象?
也有太多的困惑。例如,第一張照片的結果可能是: 我在想什麼?
輸入現在是穩健的,我需要完全相同的輸出。我如何做到這一點?
我想切片相對於無限平面的3D模型(在WPF中)。我正在檢查邊緣是否與無限平面相交。如果屬實,我會在交叉位置創建一個新點,所以我得到了幾個要生成上限的點,以便在切片後關閉模型。例如,如果這是橫截面,則結果如下: 注意:三角測量不重要。我只需要三角形。切片3D模型?
如果不能做到這一點,我認爲的方式(這似乎是如此),則應該如何我這麼做?切片後開發人員如何限制對象?
也有太多的困惑。例如,第一張照片的結果可能是: 我在想什麼?
輸入現在是穩健的,我需要完全相同的輸出。我如何做到這一點?
建立關於zwcloud的說法,您的觀點表示模糊不清。你根本沒有足夠的分數來確定任何凹陷/凹口的實際位置。然而,如果你可以通過獲得額外的點來解決這個問題(你需要段的中點),那麼你只需要將這些點扔進shrinkwrap算法中即可。那麼至少你會有帽子。
這些孔是有點棘手。也許你可以通過查看收縮包裝計算輸出中排除的點並試圖找到其他形狀,試探性地偏向位於新創建的多邊形質心附近的點。
另外的想法:如果你可以限制你自己的凸多邊形只有一個相似的凸孔,問題將是很多更容易解決。
由於code11表示已經有太多的數據來解決這個問題,所以這些要點還不夠。
而不是削減邊緣產生新的點,你應該剪切整個三角形,這會給你新的邊緣。這樣,而不是一堆點,你會有一堆連接的邊緣。
在你的例子中,有了這個單獨的修改,你會得到3個多邊形 - 這幾乎是你所需要的。那麼你將需要只計算正確的三角測量。
查找CSG
term或Constructive Solid Geometry。
編輯:
如果通用CSG是你太慢了,你已經裁剪邊緣,那麼我建議嘗試的「耳朵削波」算法。
這裏的一些描述與支持孔: https://www.geometrictools.com/Documentation/TriangulationByEarClipping.pdf
您也可以嘗試 '掃描線' 的辦法:在SO http://sites-final.uclouvain.be/mema/Poly2Tri/
而且類似的問題,有很多想法: Polygon Triangulation with Holes
我希望它有幫助。
我不確定我完全理解你以後的樣子。你的意思是切割這樣的模型嗎? http://www.mathalino.com/sites/default/files/images/conic-sections_0.jpg – Chairs
如果你只是在視覺效果之後,我可能會爲你渲染着色器。 – Chairs
我需要修改幾何圖形@Chairs。結果將被3D打印。 – None