我開始使用剪切庫從本網站:http://sourceforge.net/projects/polyclipping/剪切庫差異問題
我在Unity(C#)中工作。
一切都很好,工會,十字路口,區別...是的,區別,有一個案例,我不知道如果我做錯了什麼或算法無法處理的權利。
我想獲得差異A-B,它應該看起來像圖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但什麼也沒有改變。在這裏,我是,要求你的建議:)
編輯: 我想得到的(如圖中的「預期結果」)是一個有洞的網格。 我實際上得到的是2元素列表List,它與我給出的輸入完全相同,所以當我從這些頂點創建網格時,沒有一個網格帶有一個孔,而是一個網格覆蓋另一個網格並與Z-Fighting相交。應該有一些功能,我可以用一個洞創建Mesh,但我無法找到它。正如我在GUIDEMO中看到的這個庫的C#版本的工作原理,我看到了地圖(可能是澳大利亞)的中間有一個切孔。輸入:頂點A(作爲主題):(0,0),(0,10),(10,10),(10,0)。 (2,8),(6,8),(6,2),(2,2)。 輸出完全相同: List<List<IntPoint>>
即2元素,幷包含這兩個列表您可以在上面看到。
如果您顯示結果**座標**,您將從裁剪操作中獲得,然後獲得您期望的座標,這將有所幫助。 –
我編輯了我的文章,以便更清楚地看到這一點。感謝您的時間:) – Power
我有這個相同的問題(團結3d c#),你有沒有找到解決方案? clipperlib是實現「C」頂點的正確工具嗎? – Dodgson86