2017-02-25 5 views
0

複数のシリンダを作成し、Three.jsライブラリを使用して異なる方向に回転することによって球を作成する必要があります。私は回転軸の設定を変更する2パイ以上のループを試みましたが、動作しませんでした。私は何をすべきか ?three.jsで多くの方向を指すランダムなオブジェクトを作成する方法

var cylinder; 

var cylinderMaterial = new THREE.MeshPhongMaterial(
    { color: 0x5500DD, 
     specular: 0xD1F5FD, 
     shininess: 100 }); 

var cylinderGeo = new THREE.CylinderGeometry(3, 3, 500, 32); 

var cylinder = new THREE.Mesh(cylinderGeo, cylinderMaterial); 


var untransformedCylinder = cylinder.clone(); 
console.log("Untransformed cylinder matrix:") 
console.log(untransformedCylinder.matrix); 
scene.add(untransformedCylinder); 


var maxCorner = new THREE.Vector3( 1, 1, 1); 
var minCorner = new THREE.Vector3(-1, -1, -1); 

var cylAxis = new THREE.Vector3().subVectors(maxCorner, minCorner); 


cylAxis.normalize(); 

var theta = Math.acos(cylAxis.y); 

var rotationAxis = new THREE.Vector3(1, 0, 0); 

rotationAxis.normalize(); 

cylinder.matrixAutoUpdate = false; 

cylinder.matrix.makeRotationAxis(rotationAxis, theta); 

console.log("Theta: " + theta); 
console.log(" cos: " + Math.cos(theta)); 
console.log(" sin: " + Math.sin(theta)); 

console.log("Transformed cylinder matrix:") 
console.log(cylinder.matrix); 

scene.add(cylinder); 

答えて

1

あなたはcylinder.matrix.makeRotationAxis(rotationAxis, theta);

後ろ cylinder.setRotationFromMatrix(cylinder.matrix);を追加する必要があります
関連する問題