GTS連續布林運算失敗

2021-09-07 23:06:25 字數 927 閱讀 9011

一直在關注和解決的問題是關於實體的布林運算的問題,這是幾何造型上面的乙個大問題,也是切削加工**等等的核心。雖然有一些技巧性的方法能夠模擬「布林運算」,但是其效果都不好,最直接的還是進行真正的布林運算,然而這並不是一件很容易的事情。

前段時間也不斷的在網路上搜尋開源的3d布林運算庫,當時覺得比較滿意的是gts(gnu triangulated su***ce library),花了很長時間解決了vs2005下面的編譯問題,然後又花了一些時間來理解「古怪」的c的「物件導向」。

昨天將gts和openscenegraph進行了結合,可以在兩種格式中相互轉換,gts負責布林運算,openscenegraph進行顯示。昨天初步實驗結果還算滿意,各種布林運算都很正常。

且看下圖,展示的是乙個圓柱形的刀具和乙個長方體進行布林運算的結果。

下一步工作就是讓這些布林操作能夠連續進行,以便可以**道具在模型上面進行切削的過程。然而,gts庫終於在這時候「崩潰」了。布林運算會產生大量的細小的三角形,然而當刀具移動乙個小距離的時候,gts無法處理很多細小三角形之間的布林運算問題,導致了gts內的斷言失敗!後來在gts的郵件列表裡面檢視,然而查詢到的依然是n多人在問這種連續布林運算的問題,沒有乙個好的解決方案。我想要解決的話,至少要對布林運算以後的網格進行簡化。當然,這是後話了,簡化乙個網頁也不是那麼容易,最近,gts也無法再進行應用。

轉而另外一些庫,cgal也支援3d布林運算,但是其格式感覺比較古怪,還沒有搞明白怎麼回事,其**的許可證也要要求開發人員公開**。當然,作為學生這個可以暫時不考慮,自己用用問題不大。opencascade集大成者,什麼功能都有,就是,太太太複雜了~~~還有最近找到的acis,我申請了大學推廣計畫的許可證,還不知道什麼時候能夠審批下來,我想這個估計可以滿足。另外還有很好用的sgcore,免費版本不支援任意網格的布林運算,比較討厭,如果實在不行的話就只有用這個庫了,還得測試能不能進行多次布林運算~

加油,任重道遠……

python 布林運算

給定乙個布林表示式和乙個期望的布林結果 result,布林表示式由 0 false 1 true and or 和 xor 符號組成。實現乙個函式,算出有幾種可使該表示式得出 result 值的括號方法。示例 1 輸入 s 1 0 0 1 result 0輸出 2解釋 兩種可能的括號方法是1 0 0...

布林運算製做火箭

首先把要製作的火箭看一下 如圖 首先畫兩個橢圓,然後把它們交集獲得乙個這樣的圖形有一點像火箭的身體了 再然後又畫兩個橢圓還是跟剛剛一樣的但是不是交集了,畫出來以後,把乙個橢圓放到另乙個橢圓的上面,然後來乙個減去頂層形狀就行了.又畫乙個橢圓,把橢圓放到有點像火箭的下面,但是橢圓的圖層一定要到火箭圖層的...

布林運算子

a,b 1,2 有乙個為假即為假 print a 1 and b 2 true and true true print a 1 and b 2 true and false false 有乙個為真即為真 print a 1 or b 2 true or true true print a 1 or ...