2011-03-03 2 views
1

컨텍스트 : THREE.js를 가져 와서 원뿔 곡선을 표시하려고합니다.Three.js 작업

방법 : 정점 메쉬를 생성 한 다음 face4를 모두에 연결합니다. 원뿔형 단면이 회전 할 때 카메라가 어느 각도에서 보든 상관 없도록 두면을 사용하여 앞면과 뒷면을 만듭니다.

문제가 발생했습니다. 1. 직관적 인 마우스 순환 구성표를 만드는 좋은 방법을 찾으려합니다. 구면 좌표계에서 생각하면, 위/아래로 변경하는 phi 및 왼쪽/오른쪽으로 변경하는 phi가 작동하는 것처럼 느껴집니다. 그러나 그것은 당신이 카메라를 움직일 수 있어야합니다. 내가 말할 수있는 한, 객체 이외의 회전을 적극적으로 변경하는 방법은 없습니다. 누구든지 카메라 또는 장면의 회전을 변경하는 방법을 알고 있습니까? 2. 메쉬를 만드는 것보다 더 나은 그래프 함수를 그래프로 표시하는 방법이 있습니까? 메쉬에 점이 많으면 속도가 너무 느리고 메쉬에 점이 적 으면 원뿔 곡선의 모양을 쉽게 만들 수 없습니다.

어떤 종류의 도움이 가장 우수 할 것입니다.

답변

1

저는 아직 Three.js를 배우기 시작하고 있으므로 질문의 두 번째 부분에 대해 확신하지 못합니다. 첫 번째 부분은 카메라를 변경하는 것입니다. 트랙볼 카메라를 확대/축소하고 움직이는 것도 좋은 방법입니다.

정확한 코드를

그것을 사용하는 방법, 당신은 볼 수 있습니다 https://github.com/mrdoob/three.js/blob/master/examples/webgl_trackballcamera_earth.html

이 페이지 (http://mrdoob.com/122/Threejs)의 botton을에서 당신 행동의 예를 볼 수 있습니다 (아래에서 세 번째 줄에있는 지구).

0

three.js 카메라에 대한 궤도 제어 스크립트가 있습니다.

로테이션 비트를 이해할 수 있을지 잘 모르겠습니다. 당신은 객체를 회전시키고 싶지만 당신은 정확하다. 회전은 상대적이다.

카메라를 회전하거나 움직이면 해당 위치/회전에 대한 행렬이 계산되고 실제로 카메라는 고정 된 채로 장면이 회전합니다.

모델/월드 공간에서 작업하고 카메라를 카메라에 배치했기 때문에 엔진이 후드에서 회전을 처리합니다.

개체를 설정하고 회전 좌표를 구 좌표로 연결 한 다음 카메라를 자식으로이 개체에 연결하면됩니다. 카메라 Z 축을 따라 객체를 기준으로 한 평행 이동은 돌리를 모방해야합니다 (줌은 FOV 변경 임).

0

카메라의 위치를 ​​변경하여 회전 할 수 있습니다. 여기에 붙여 넣은 코드를 참조하십시오. https://gamedev.stackexchange.com/questions/79219/three-js-camera-turning-leftside-right

OrbitControls.js는 사용자가 카메라를 관리하는 데있어 직관적 인 방법입니다.

나는 formulatoy.net을 구축 할 때 동일한 문제를 많이 다루었습니다. 저는 Morphing Geometries를 사용했는데, 3D 수학 함수를 UV 표면에 매핑하여 v 코드가 필요하고 다른 좌표계 (데카르트, 구형, 원통형)를 쉽게 구현할 수있었습니다.

메쉬 대신 입자를 사용할 수 있지만 메쉬가 가장 좋습니다. 수학적으로 표면을 이해하려고 할 때 격자 재료는 그다지 유용하지 않습니다. 이 시점에서 나는 횡단면을보다 잘 보여주기 위해 표면에 자신의 X, Y 선 (또는 Φ, 쎄타 선 등)을 그려야한다고 생각합니다.

희망이 있습니다.

0

트랙볼 컨트롤을 사용하면 개체를 확대하거나 축소하고, 개체를 회전하고, 회전 할 수 있습니다. 트랙볼 컨트롤에서는 개체를 중심으로 카메라를 움직입니다. 개체는 여전히 화면이나 렌더러와 관련하여 회전합니다 center (0,0,0).

관련 문제