2016-11-11 64 views
0

我想繪製一個與three.js正常的餅圖,並與CylinderGeometry去做。 問題是,我想動畫我的餅圖。就像有人點擊餅圖的一部分一樣,它應該從餅圖中滑出。製作CylinderGeometry非空心

問題是,這個幾何體是鏤空在裏面! 有沒有辦法使CylinderGeometry固體(非空心)? (我知道我可以畫我自己的餅圖,但我想知道是否有可能與CylinderGeometry做呢?)

回答

1

LatheGeometry()ExtrudeGeometry()將幫助你建立一個圓柱體的部分。但是因爲你想要一個非空洞的細分市場,那麼ExtrudeGeometry()就是你的選擇。

jsfiddle例如

+0

這是行不通的。如果你看看github上的源代碼,它說它只能從路徑形狀中擠出幾何圖形。 – Bajro

+0

你能證明你試過了嗎? – prisoner849

+0

我用'ExtrudeGeometry()'做了一個例子,它工作得很好。 'Path'有一個很好的'absarc(...)'方法。 – prisoner849

0

這是我的代碼的通氣管。 我正在遍歷一個json文件來獲取數據,然後這段代碼創建了多個段。

var segment = new THREE.Mesh(new THREE.ExtrudeGeometry(new THREE.CylinderGeometry(5,5,1.5,50,50,false,lastThetaStart,(Math.PI*2)*(jsonData[data].percent/100)), 
     {amount: 100, steps: 100, bevelEnabled : false}), 
     new THREE.MeshPhongMaterial({ 
      color: Math.random() * 0xffffff, 
      shading: THREE.SmoothShading, 
      specular: 0xffffff, 
      shininess: 3, 
     })); 

但只要我執行我的example.html中的文件,它給了我下面的錯誤:

three.js:26099 Uncaught TypeError: shape.extractPoints is not a function(…)

+0

我更新了我的答案與jsfiddle的例子。 – prisoner849