2012-04-30 3 views
0

주어진 축을 중심으로 큐브를 회전해야하는 방향에 대한 과제를 수행하고 있습니다. MATLAB 함수를 사용할 수 없으므로 수동으로해야합니다.축을 중심으로 큐브를 회전하는 방법 - MATLAB

내 시도는 유용하지 않습니다. `전

function [ CV ] = rotateCubeX(CV, degrees) 
    %CV = input vertices/Return val 
    %degrees = amount of degrees to rotate 
    alpha = degrees * pi/180; 
    rotate = zeros(3,3); 
    rotate(1,1) = 1; 
    rotate(2,2) = cos(alpha); 
    rotate(2,3) = -sin(alpha); 
    rotate(3,2) = sin(alpha); 
    rotate(3,3) = cos(alpha); 
    CV = CV * rotate; 
    end 

:

25.2000 5.9000 2.5000 
25.7000 5.9000 2.5000 
25.7000 7.9000 2.5000 
25.2000 7.9000 2.5000 
25.2000 5.9000 2.8000 
25.7000 5.9000 2.8000 
25.7000 7.9000 2.8000 
25.2000 7.9000 2.8000 

후 :

-10.3544 -23.7200 2.5000 
-10.6536 -24.1205 2.5000 
-9.0513 -25.3175 2.5000 
-8.7521 -24.9169 2.5000 
-10.3544 -23.7200 2.8000 
-10.6536 -24.1205 2.8000 
-9.0513 -25.3175 2.8000 
-8.7521 -24.9169 2.8000 

이미지에 변화 없음.

나는 바보 같은 것을 잊어 버릴 것이라고 확신한다.

+0

이 코드를 실행하면 어떻게됩니까? 그리고 예상했던 것과 어떻게 다른가요? –

+0

이렇게하면 이미지는 변경되지 않지만 이미지를 나타내는 행렬에는 약간의 변화가 있습니다. – taylorcressy

+0

예 매트릭스에 중요한 변화가 있지만 이미지에 없습니다 – taylorcressy

답변

2

회전 할 축은 무엇입니까? 코드에서 어떻게 그 문제를 설명 했습니까?

임의의 축인 축에 대해 회전하려는 경우 임의 축을 기준으로 한 회전에 대한 일반 공식은 here입니다. (회전 행렬을 만드는 다른 방법을보십시오). 손잡이에주의를 기울여야하고, 행 - 주요 열 또는 열 주요 행렬을 사용하는지 여부에주의하십시오!

+0

답장을 보내 주셔서 감사합니다 이제는 내 문제를 깨닫게됩니다. 실제로 상대 위치에 대해 회전하고 싶을 때 X 축을 중심으로 회전하고 있습니다. (바퀴를 움직이고 싶을 때처럼) 그래서 어떻게 – taylorcressy

+0

Ahhh 문제가 해결되었습니다. 해결 방법을 알아 냈습니다. 회전하려는 객체를 원점으로 변환 한 다음 회전 한 다음 다시 번역하십시오. 문제 해결 :) 브레인 스토밍에 감사드립니다. – taylorcressy

+0

@taylorcressy - 답변이 도움이되었고 문제가 해결 되었다면이를 수락하는 것이 좋습니다 ... – zenpoy

관련 문제