2014-08-27 56 views
0

修改屬性繪製直線「線」在畫布我創建了一個小提琴其中顯示了長度和直徑氣缸在three.js所

我能位置長度的行的準則。

但不知道如何改變線的屬性,以便它繪製一條直線,顯示直徑,如顯示下面的示例中:

// Diameter line  
var diameterLineGeometry = new THREE.Geometry(); 
var diameterVertArray = diameterLineGeometry.vertices; 
diameterVertArray.push(new THREE.Vector3(1, 0.5, 0), new THREE.Vector3(-0.3, 0.7, 1)); 
diameterLineGeometry.computeLineDistances(); 
var diameterLineMaterial = new THREE.LineBasicMaterial({ 
    color: 0xcc0000 
}); 
var diameterLine = new THREE.Line(diameterLineGeometry, diameterLineMaterial); 
cylinder.add(diameterLine); 

enter image description here

我的問題用這個代碼得到的是,當我改變圓柱體對象的六邊時,「線」的位置移動。線條的位置顯示當對象較小時,例如:50 x 40,但如果將尺寸更改爲「123x123」,線條位置移動。

下面是相同的小提琴:http://jsfiddle.net/b9ge6fr6/7/

讓我知道如果你需要的任何其他信息。

請建議。

回答

1

的直徑的座標是

diameterVertArray.push(new THREE.Vector3(-1, 0.5, 0), new THREE.Vector3(1, 0.5, 0)); 

一個長度是

lengthVertArray.push(new THREE.Vector3(-1, 0.51, 0), new THREE.Vector3(-1, -0.51, 0)); 

,另一種是

alengthVertArray.push(new THREE.Vector3(0, 0.5, 1), new THREE.Vector3(0, -0.5, 1)); 

fiddle