2017-02-25 2 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);을 추가해야합니다
관련 문제