我正在切割網格。那我究竟想實現的是:如何獲得兩個平面網格的公共部分?
輸入 - 兩個網格(當然程序產生的)
輸出 - 3個網格(或更多,取決於給定網格)
A - 這是一個米沙網狀。減去B,
乙 - 這是目A和B的公共部分,
ç - 這是網狀乙目。減去A.
我使用三角函數,給定的頂點集爲我創建三角形。我所要做的就是給他這些頂點,這裏就是問題所在。有沒有什麼算法可以幫助我做到這一點?當你看到這張照片的時候,你的想法可能是你想到的嗎?我在Unity(C#)中工作,所以與Unity Tools相關的任何東西都是有用的。謝謝 !
編輯:
我使用這條新聞庫:http://sourceforge.net/projects/polyclipping/,一切工作正常,直到這種情況下:
我想獲得的區別AB和它應該看起來像從圖2中的一個),不幸的是,輸出是網格A和網格B,如圖1)所示。
我做什麼:
Clipper c = new Clipper();
c.AddPath(here goes the vertices of mesh A, polyType.Subject, true);
c.AddPath(here goes the vertices of mesh B, polyType.Clip, true);
c.Execute(ClipType.ctDIfference, a list of lists for my output, PolyFillType.NonZero, PolyFillType.NonZero);
我已經試圖改變PolyFillTypes但什麼也沒有改變。在這裏,我是,要求你的建議:)
是否有可能由多個單獨的形狀組成B,或者是否保證此布爾運算中的兩個相交形狀是凸的? – Serlite
你有試過什麼嗎?發佈一些你的代碼,以便我們可以幫助你。 – maksymiuk
我剛開始這個。在我編寫任何會影響我未來工作的事情之前,我會考慮一下。我聽說過有關3D網格的布爾操作,但它不適用於2D網格。 – Power