2012-08-11 4 views

답변

28

도움을 주셔서 감사합니다.

geometry.applyMatrix(new THREE.Matrix4().makeTranslation(x, y, z)); 

실린더의 y를 100 포인트로 변환 한 것을 사용하여 기본적으로 하단이 회전합니다.

+0

나는 내 삶을 살아갈 수 없다. 원점을 변환하기 때문에 회전이 전혀 바뀌지 않습니다. – Tyguy7

+2

@ Tyguy7 - geometry.verticesNeedUpdate = true를 설정해야합니다. –

+5

이제이 바로 가기 인'geometry.translate (x, y, z);'를 사용할 수 있습니다. http://stackoverflow.com/questions/12835361/three-js -move-custom-geometry-to-origin – kraftwer1

2

내 경우에는 피벗을 사용하는 접근 방식을 사용했습니다. 기본적으로, 당신은 피벗 지점을 만들 :

var pointToRotateAround; 
var objectToRotate; 
... 
var pivot = new THREE.Object3D(); 
pivot.position=pointToRotateAround.position; 
pivot.add(objectToRotate); 
scene.add(pivot); 
... 
function render(){ 
pivot.rotation.z +=0.05; 
} 
... 

그것은 하나의 몸이 점 또 다른 나 중심으로 회전하게 할 수있는 방법을 제공합니다. 그 접근 방식에 대해 더 자세히 설명해 드리겠습니다 : https://github.com/mrdoob/three.js/issues/1830

관련 문제