2017-04-04 15 views
0

나는 화살표가 법선을 그리는 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 있습니다.

그리고 내 질문은 : enter image description here

UPD : 나는 CylinderGeometry를 사용
같은 picuter을 얻기 위해, 공간으로 표면에서 정상 선을 그립니다하기 위해에 벡터를 계산하는 방법.

UPD2 :
해결했습니다. Look at my codepen

+0

당신은 무엇의 정상을 계산해야합니까? 'bufferGeometry' 또는'geometry'를 가지고 있습니까? 아니면 얼굴의 꼭지점의 법선 인 세 개의 벡터가 있습니까? 이 질문은 완전히 불완전합니다. –

+0

나는 3js 예제와 같은 구조를 가지고 있습니다. 'CylinderGeometry'' – artzub

+0

지오메트리면을 살펴보고 각 삼각형에 대한 수식을 수동으로 계산하는 것이 좋습니다. – mlkn

답변