2013-06-18 2 views
0

새 THREE.PlaneGeometry()를 내 장면에 추가하면 XY 평면에서 수직으로 [0,0,0]에 나타나며 정면이 + Z 축을 향하게됩니다. 그런 다음 plane.rotation.x = -Math.PI/2를 실행하여 평면을 내려 놓습니다. 그러면 평면이 아래쪽으로 향하게됩니다.기울어 진 평면의 좌표계를 변경할 수 있습니까?

내가 겪고있는 문제는 이제 평면의 + Y 축이 글로벌 -Z 축을 따라 지정된다는 것입니다.

비행기가 지형을 표현하고 있기 때문에 해발 고도 (높이)를 시뮬레이트하기 위해 꼭지점의 높이를 조정할 수 있기를 원합니다. 따라서 내가 코드를 쓸 수 원하는 무엇을이 같은 것입니다 :

plane.geometry.vertices[i].y = 3; 

... 그러나 그것은 단순히 한 평면 비행기를 떠나는 Z 축을 따라 정점 -3 단위를 이동한다 무엇을 압정이야.

나를 위해 좌표를 매핑하는 추상화 함수를 작성하지만 코드를 추가하고 데이터 구조에 직접 액세스하는 것을 방해하지 않으려합니다 (실험하는 동안 좋음).

의 영구히의 방법으로 평면의 좌표계가 글로벌 좌표계와 일치하도록 변경합니까? 예를 들어, plane.geometry.vertices [i] .y ++는 실제로 지형에서 충돌을 일으 킵니까?

건배.

답변

1

메시를 회전하는 대신 메시를 만들기 전에 형상 자체에 회전을 적용하십시오.

geometry.applyMatrix(new THREE.Matrix4().makeRotationX(- Math.PI/2)); 

three.js를 r.58

+0

감사합니다! 그건 완벽하게 작동합니다. – Tim

관련 문제