를 여행하는 방향으로 객체를 회전 : http://deeplogic.info/project/webGL/WebGL을 - 그것은이 예에서
어떻게 내가 여행하는 방향으로 개체를 회전 할 수 있습니까?
를 여행하는 방향으로 객체를 회전 : http://deeplogic.info/project/webGL/WebGL을 - 그것은이 예에서
어떻게 내가 여행하는 방향으로 개체를 회전 할 수 있습니까?
방향 (x, y) 방향으로 움직이는 물체에 대해 z를 중심으로 회전하려면 Math.atan2(y,x)
방법을 사용할 수 있습니다. 라디안 단위의 각도를 반환합니다. ES 2 이전의 OpenGL 컨벤션은 각도로 작업했지만, 요즘에는 코드를 버텍스 쉐이더로 푸시해야합니다. 아마도 변환을 원할 것입니다.이 경우 결과에 180을 곱하고 (도수 반원) pi (라디안 반원)로 나눕니다.
삼각법에 사용되는 호출자에게는 지겨워 요. 사람, 선형 선형 대수학은 그다지 어렵지 않습니다. 보다 직접적인 접근 방식에 대한 내 대답을보십시오. – datenwolf
그리고 세 개의 삼각 함수 (회전 행렬 만들기 포함)의 효율성과 세 개의 제곱근에 대한 확고한 규칙이 있다고는 생각하지 않지만 제곱근에 대한 결과는 지겨워요. 더 많은 정당성 : 사람들은 선형 대수학보다 일찍 삼각법을 연구하는 경향이 있으며 각도를 통해 작업하는 것은 회전의 개념을 불러오는 질문에 대한보다 직접적이고 구체적인 답변입니다. – Tommy
선형 대수보다 먼저 삼각법을 수행하는 사람들이 문제입니다. 거의 모든 삼각 문제는 선형 대수학으로 표현할 수 있습니다. 그리고 회전의 경우, 각도는 단지 약간의 정보가 부족합니다. 회전을 표현하는 유일한 방법은 행렬, 쿼터니언 또는 쿼터니언의 하위 집합 인 2D 복소수의 경우 SU (2) 그룹의 요소를 사용하는 것입니다. 그리고 "방향을 가리 키도록하십시오"의 경우에는 이미 방향 벡터가 있습니다. – datenwolf
개체가 방향 D로 이동하고 있다고 가정하면 그 방향에 수직 인 벡터를 찾는 것뿐입니다. 경우에 당신의 운동은 정상적인 비행기 N.이 그 정상화 후 3 개 벡터 D, E 및 N. 당신을 얻을 수
E = D × N
와 D의 십자가 제품을 복용하여 벡터 E를 찾을 수있는 단 하나 개의면에 회전 된 좌표계의 기초를 형성한다. 당신은
D_x E_x N_x
D_y E_y N_y
D_z E_z N_z
는 4 × 4 균일 한
D_x E_x N_x 0
D_y E_y N_y 0
D_z E_z N_z 0
0 0 0 1
에이 행렬을 확장 3 × 3 행렬의 열로 넣을 수 있습니다 그리고 당신은에 적용 할 glMultMatrix로하는 OpenGL을 전달할 수 있습니다 행렬 스택
나는 완전히 그 질문을 이해하고 있는지 확신 할 수 없다 - 바퀴가 땅을 따라 움직이는 것처럼 바퀴가 회전하는 것처럼 의미 하는가? 그렇다면 링크 된 예제가 2 차원이라는 점에 유의하십시오. 그런 식으로 유지하거나 3 차원을 추가하고 싶습니까? – Tommy
링크 된 예제는 2 차원 평면에서만 움직이지만 3d로되어 있습니다. 그래서 z 축을 중심으로 회전합니다. 내가 원하는 것은 직사각형이 그 방향을 가리 키도록하는 방향으로 움직이는 것입니다. – Sycren