원통을 만들었으므로 바운딩 상자를 변경하여 회전 중심을 원점으로 이동하려고합니다. 작동하지 않습니다.Three.js가 지오메트리의 중심을 이동
내가 작업 봤는데 무엇의 예있다.
기본적으로 나는 핸들을 휘둘러 검을 휘두르는 것처럼 실린더를 회전시키고 싶습니다.
원통을 만들었으므로 바운딩 상자를 변경하여 회전 중심을 원점으로 이동하려고합니다. 작동하지 않습니다.Three.js가 지오메트리의 중심을 이동
내가 작업 봤는데 무엇의 예있다.
기본적으로 나는 핸들을 휘둘러 검을 휘두르는 것처럼 실린더를 회전시키고 싶습니다.
도움을 주셔서 감사합니다.
geometry.applyMatrix(new THREE.Matrix4().makeTranslation(x, y, z));
실린더의 y를 100 포인트로 변환 한 것을 사용하여 기본적으로 하단이 회전합니다.
내 경우에는 피벗을 사용하는 접근 방식을 사용했습니다. 기본적으로, 당신은 피벗 지점을 만들 :
는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
나는 내 삶을 살아갈 수 없다. 원점을 변환하기 때문에 회전이 전혀 바뀌지 않습니다. – Tyguy7
@ Tyguy7 - geometry.verticesNeedUpdate = true를 설정해야합니다. –
이제이 바로 가기 인'geometry.translate (x, y, z);'를 사용할 수 있습니다. http://stackoverflow.com/questions/12835361/three-js -move-custom-geometry-to-origin – kraftwer1