three.js의 카메라 회전이 제대로 작동하지 않습니다.

FutureCake

three.js 장면에서 x 축을 중심으로 카메라를 회전하는 다음 코드가 있습니다.

var cameraOrginX = 0, cameraOrginY = 0, cameraOrginZ = 0;
var cameraEndX = 0, cameraEndY = 0, cameraEndZ = 1000;
var angle = 0;

function init(){
     camera = new THREE.PerspectiveCamera( 70, window.innerWidth / window.innerHeight, 1, 10000 );
     camera.position.set(0,0,1000);

     //ROTATE THE CAMERA
     var radians = angle * Math.PI / 180.0;

     cameraEndY = Math.cos(radians) * (cameraEndY-cameraOrginY) - Math.sin(radians) * (cameraEndZ-cameraOrginZ) + cameraOrginY;
     cameraEndZ = Math.sin(radians) * (cameraEndY-cameraOrginY) + Math.cos(radians) * (cameraEndZ-cameraOrginZ) + cameraOrginZ;
     //

     //CAMERA NEW POS
     camera.position.x = cameraOrginX + cameraEndX;
     camera.position.y = cameraOrginY + cameraEndY;
     camera.position.z = cameraOrginZ + cameraEndZ;
     console.log(camera.position.y + "   " + camera.position.z);
}

각도 변수를 0으로 설정하면 카메라 위치가 x = 0, y = 0, z = 1000입니다. 이것은 기대하고 좋은 것입니다.

예를 들어 각도를 90 도로 변경하면 위치가 x = 0 y = -1000 z = -999,99999로 변경됩니다. 위치는 x = 0, y = -1000, z = 0이 될 것으로 예상합니다.

왜 이런 일이 발생합니까? 누군가 내가 뭘 잘못하고 있는지 설명해 줄 수 있습니까? :)

0을 제외한 모든 각도는 나에게 이상한 위치를 제공합니다 :(

더 많은 코드 또는 jsfidle이 필요하면 저에게 물어보십시오 :)

라세 두자 만 수 로프
cameraEndY = Math.cos(radians) * (cameraEndY-cameraOrginY) - Math.sin(radians) * (cameraEndZ-cameraOrginZ) + cameraOrginY;
cameraEndZ = Math.sin(radians) * (cameraEndY-cameraOrginY) + Math.cos(radians) * (cameraEndZ-cameraOrginZ) + cameraOrginZ;

당신은 사용하지 못할 cameraEndYcameraEndZ이미 업데이트되었습니다 때문에 계산. 계산에서는 업데이트 된 계산 아니라 이전 yz좌표 를 사용해야 rotation합니다. 대신 다음을 사용하십시오.

var cosTheta = Math.cos(radians);
var sinTheta = Math.sin(radians);

var a = cosTheta * (cameraEndY-cameraOrginY);
var b = sinTheta * (cameraEndZ-cameraOrginZ);
var c = sinTheta * (cameraEndY-cameraOrginY);
var d = cosTheta * (cameraEndZ-cameraOrginZ);


cameraEndY = a - b + cameraOrginY;
cameraEndZ = c + d + cameraOrginZ; 

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Three.js 회전 카메라 피치가 작동하지 않습니까?

분류에서Dev

Three.js FirstPersonControls GSAP 트윈 / 다시 시작 컨트롤 후 카메라 회전이 뒤로 점프합니다.

분류에서Dev

Three.js 카메라 lookat이 작동하지 않음

분류에서Dev

에뮬레이터 카메라가 제대로 작동하지 않습니다.

분류에서Dev

Three.js-카메라를 90도 각도로 회전 할 때 x 축과 z 축 회전이 동일한 효과가있는 이유는 무엇입니까?

분류에서Dev

THREE.MeshFaceMaterial의 세 JS 개정 71이 제대로 작동하지 않습니다.

분류에서Dev

Three.js는 카메라를 제외한 모든 것을 회전합니다.

분류에서Dev

Chrome에서 THREE.js 앱을 열면 브라우저가 제대로 작동하지 않습니다.

분류에서Dev

Node.js / Express 라우팅이 제대로 작동하지 않습니다.

분류에서Dev

Three.js를 사용하여 로컬 축에서 카메라 X 회전

분류에서Dev

카메라 회전 후 Three.js 스카이 박스가 깨진 것 같습니다.

분류에서Dev

Three.js TimeLineLite 애니메이션이 작동하지 않습니다.

분류에서Dev

전면 카메라로 전환이 작동하지 않음

분류에서Dev

babylonjs vr에서 작동하지 않는 전화의 카메라 제어

분류에서Dev

JS 기능이 제대로 작동하지 않습니다.

분류에서Dev

Three.js는 객체가 회전 할 때 카메라를 회전합니다.

분류에서Dev

.bashrc의 if 문이 제대로 작동하지 않습니다.

분류에서Dev

Eclipse의 refreshLocal이 제대로 작동하지 않습니다.

분류에서Dev

POpup 창의 Vaidation이 제대로 작동하지 않습니다.

분류에서Dev

파일의 grep이 제대로 작동하지 않습니다.

분류에서Dev

List <object>의 ToString ()이 제대로 작동하지 않습니다.

분류에서Dev

Javascript의 카운트 다운이 IE에서 제대로 작동하지 않습니다.

분류에서Dev

카메라를 제어하는 트랙볼을 사용하지 않고 three.js (r66)에서 객체를 회전하는 방법

분류에서Dev

Three.js-카메라 회전 및 TransformControls

분류에서Dev

SKPhysicsJoint로 인해 회전이 제대로 작동하지 않습니다.

분류에서Dev

Three.js 개체를 카메라 앞으로 이동

분류에서Dev

Three js에서 카메라를 앞뒤로 이동

분류에서Dev

SVG 모양의 획 애니메이션이 제대로 작동하지 않습니다.

분류에서Dev

전환 JS 애니메이션 루프가 제대로 작동하지 않음

Related 관련 기사

  1. 1

    Three.js 회전 카메라 피치가 작동하지 않습니까?

  2. 2

    Three.js FirstPersonControls GSAP 트윈 / 다시 시작 컨트롤 후 카메라 회전이 뒤로 점프합니다.

  3. 3

    Three.js 카메라 lookat이 작동하지 않음

  4. 4

    에뮬레이터 카메라가 제대로 작동하지 않습니다.

  5. 5

    Three.js-카메라를 90도 각도로 회전 할 때 x 축과 z 축 회전이 동일한 효과가있는 이유는 무엇입니까?

  6. 6

    THREE.MeshFaceMaterial의 세 JS 개정 71이 제대로 작동하지 않습니다.

  7. 7

    Three.js는 카메라를 제외한 모든 것을 회전합니다.

  8. 8

    Chrome에서 THREE.js 앱을 열면 브라우저가 제대로 작동하지 않습니다.

  9. 9

    Node.js / Express 라우팅이 제대로 작동하지 않습니다.

  10. 10

    Three.js를 사용하여 로컬 축에서 카메라 X 회전

  11. 11

    카메라 회전 후 Three.js 스카이 박스가 깨진 것 같습니다.

  12. 12

    Three.js TimeLineLite 애니메이션이 작동하지 않습니다.

  13. 13

    전면 카메라로 전환이 작동하지 않음

  14. 14

    babylonjs vr에서 작동하지 않는 전화의 카메라 제어

  15. 15

    JS 기능이 제대로 작동하지 않습니다.

  16. 16

    Three.js는 객체가 회전 할 때 카메라를 회전합니다.

  17. 17

    .bashrc의 if 문이 제대로 작동하지 않습니다.

  18. 18

    Eclipse의 refreshLocal이 제대로 작동하지 않습니다.

  19. 19

    POpup 창의 Vaidation이 제대로 작동하지 않습니다.

  20. 20

    파일의 grep이 제대로 작동하지 않습니다.

  21. 21

    List <object>의 ToString ()이 제대로 작동하지 않습니다.

  22. 22

    Javascript의 카운트 다운이 IE에서 제대로 작동하지 않습니다.

  23. 23

    카메라를 제어하는 트랙볼을 사용하지 않고 three.js (r66)에서 객체를 회전하는 방법

  24. 24

    Three.js-카메라 회전 및 TransformControls

  25. 25

    SKPhysicsJoint로 인해 회전이 제대로 작동하지 않습니다.

  26. 26

    Three.js 개체를 카메라 앞으로 이동

  27. 27

    Three js에서 카메라를 앞뒤로 이동

  28. 28

    SVG 모양의 획 애니메이션이 제대로 작동하지 않습니다.

  29. 29

    전환 JS 애니메이션 루프가 제대로 작동하지 않음

뜨겁다태그

보관