Main Content

임의의 축을 기준으로 회전

이 예제에서는 임의의 축을 기준으로 객체를 회전하는 방법을 보여줍니다.

회전하기 전에 원점으로 평행 이동

회전은 원점을 기준으로 수행됩니다. 따라서 원하는 회전 축이 일시적으로 원점에 오도록 평행 이동을 수행해야 합니다. 회전 변환 행렬을 적용한 후 객체를 원래 위치로 다시 평행 이동합니다.

곡면 회전

이 예제에서는 y축을 기준으로 곡면을 회전하는 방법을 보여줍니다.

곡면과 변환 생성

transform 객체를 곡면의 부모로 지정합니다.

t = hgtransform;
surf(peaks(40),'Parent',t)
view(-20,30)
axis manual

Figure contains an axes object. The axes object contains an object of type surface.

변환 생성

곡면을 -15도 회전하도록 y축 회전 행렬을 설정합니다.

ry_angle = -15*pi/180; 
Ry = makehgtform('yrotate',ry_angle);
t.Matrix = Ry;

Figure contains an axes object. The axes object contains an object of type surface.

원점을 통과하는 y축을 기준으로 곡면이 -15도 회전되었습니다.

곡면의 평행 이동 및 회전

이제 점 x = 20을 통과하는 y축을 기준으로 곡면을 회전해 봅시다.

두 개의 평행 이동 행렬을 생성합니다. 하나는 곡면을 x축에서 -20단위로 평행 이동하고, 다른 하나는 곡면을 20단위 뒤로 평행 이동합니다. 회전 행렬과 함께 두 개의 평행 이동 행렬을 올바른 순서로 결합(Concatenate)하고 변환을 설정합니다.

Tx1 = makehgtform('translate',[-20 0 0]);
Tx2 = makehgtform('translate',[20 0 0]);
t.Matrix = Tx2*Ry*Tx1;

Figure contains an axes object. The axes object contains an object of type surface.