1
두 점 p1과 p2로 이루어진 특정 도끼에서 원통을 회전하고 싶습니다. 두 점 사이의 거리와 같은 높이 l로 원통을 만들고, 그 도끼의 중간에 배치합니다.three.js 도끼 방향으로 객체를 회전
var xd = p2.x - p1.x,
yd = p2.y - p1.y,
zd = p2.z - p1.z,
l = Math.sqrt(xd*xd + yd*yd + zd*zd);
var cylinder = new THREE.Mesh(new THREE.CylinderGeometry(5, 5, l, 32), new THREE.MeshBasicMaterial({color: "#ffffff"}));
cylinder.position.set(p1.x+xd/2, p1.y+yd/2, p1.z+zd/2);
나는 두 점 사이에 필요한 rotaion 행렬을 얻고 무엇을 잘못 참조
var quaternion = new THREE.Quaternion();
quaternion.setFromUnitVectors(new THREE.Vector3(p1.x,p1.y,p1.z).normalize(),new THREE.Vector3(p2.x,p2.y,p2.z).normalize());
cylinder.rotation.setFromQuaternion(quaternion);
내가 해달라고 실린더의 회전 행렬에 적용 setFromUnitVectors를 사용하거나 아니면 다른 방식이있다 해?
완벽하게 작동합니다! – alex