나는 화살표가 법선을 그리는 the example을 threejs.org에서 찾았습니다. 필요한 부분입니다. 그러나 화살표는 복잡한 객체이며 ArrowHelper에 의해 생성됩니다. 소스 코드를보고 setDirection 메소드를 찾았습니다. three.js에서 객체의 표면에 법선을 렌더링하는 방법
function setDirection(dir) {
// dir is assumed to be normalized
if (dir.y > 0.99999) {
this.quaternion.set(0, 0, 0, 1);
} else if (dir.y < - 0.99999) {
this.quaternion.set(1, 0, 0, 0);
} else {
axis.set(dir.z, 0, - dir.x).normalize();
radians = Math.acos(dir.y);
this.quaternion.setFromAxisAngle(axis, radians);
}
};
나는 사원 수를 사용하여 Vector3에 대한 회전을 설정하는 알고리즘을 immpliment하려고하지만, 난 여전히
{x: 0, y: 0, z: 0}
에 보이는 norlams 있습니다.
그리고 내 질문은 :
UPD : 나는 CylinderGeometry를 사용
같은 picuter을 얻기 위해, 공간으로 표면에서 정상 선을 그립니다하기 위해에 벡터를 계산하는 방법.
UPD2 :
해결했습니다. Look at my codepen
당신은 무엇의 정상을 계산해야합니까? 'bufferGeometry' 또는'geometry'를 가지고 있습니까? 아니면 얼굴의 꼭지점의 법선 인 세 개의 벡터가 있습니까? 이 질문은 완전히 불완전합니다. –
나는 3js 예제와 같은 구조를 가지고 있습니다. 'CylinderGeometry'' – artzub
지오메트리면을 살펴보고 각 삼각형에 대한 수식을 수동으로 계산하는 것이 좋습니다. – mlkn