2015-12-10 49 views
1

我想知道如何使用three.js來繪製一個帶有切片的圓柱體,即如下所示:Image使用three.js繪製一個切割出圓柱體的圓柱體的最簡單方法是什麼?

所有的答覆都非常感謝。

+0

你在找什麼叫做「建設性立體幾何」。基本上,它只是一種思考3D幾何的方式,就好像它們是實體一樣,以便您可以執行布爾操作,例如合併和減法。這樣,你可以做一些事情,比如構建你的圓柱體,構造一個楔形體作爲一種「死亡」,然後從圓柱體上「切割」楔體。以下是我過去使用過的three.js庫,不保證其結果或效率:https://github.com/chandlerprall/ThreeCSG – jered

回答

2

可能得到你想要的形狀的最簡單方法是擠出THREE.Shape像這樣:

var settings = { 
    amount: 2, 
    steps : 1, 
    bevelEnabled: false, 
    curveSegments: 24 
}; 

var shape = new THREE.Shape(); 
shape.moveTo(0, 0); 
shape.absarc(0, 0, 10, 0, Math.PI * 1.75, false); 
shape.moveTo(0, 0); 

var geometry = new THREE.ExtrudeGeometry(shape, settings); 

小提琴:http://jsfiddle.net/0yyg5ese/

three.js所r.73

+0

感謝您的答案。這正是我所需要的,但有什麼方法可以在代碼中的其他地方調整楔形大小嗎? –

+0

如果您無法回答自己的問題,請發表一篇新文章,顯示您的代碼並清楚描述問題。 – WestLangley

0

使用THREE.CylinderGeometry並設置thetaLength-參數。默認值是2 * Pi,這是一個完整的圓柱體。我已經制作了一個看起來像你的圖像的小提琴:http://jsfiddle.net/hvgropoa/

不足:在slice's面孔AR缺失,這樣你就可以在汽缸內看到切割:(然而,這是最簡單的方法,如果你需要一個封閉的圓柱體,我建議用THREE.CSG做它裏面看時