Essential Mathematics for Computational Design 16 회전 변환

회전 변환(Rotation transformation)

이번 장에서는 z축을 중심으로 객체를 회전 시키는 것의 원리를 설명하고 이를 어떻게 행렬로 표현하는 지를 설명하고 있습니다.

x = d cos(a) —(1)

y = d sin(a) —(2)

x’ = d cos(b+a) —(3)

y’ = d sin(b+a) — (4)

이 중 (3)번과 (4)번을 삼각함수를 이용하여 풀어서 쓰면 다음과 같습니다.

x’ = d cos(a)cos(b) – d sin(a)sin(b) —(5)

y’ = d cos(a)sin(b) + d sin(a)cos(b) —(6)

 

위 식에 (1)번과 (2)번 식을 대입하면 다음과 같습니다.

x’ = x cos(b) – y sin(b)

y’ = x sin(b) + y cos(b)

동치좌표(homogeneous coordinate)를 이용하면 z축을 중심으로 각b 만큼 회전하는 행렬은 다음과 같이 표현할 수 있습니다.

 
x축을 중심으로 각b 만큼 회전시키는 회전행렬은 다음과 같습니다.

 

y축을 중심으로 각b 만큼 회전시키는 회전행렬은 다음과 같습니다.

 

라이노 객체 라이브러리인 OpenNURBS™ (http://www.openNurbs.org)에서는 OnXform 라는 강의를 통하여 기하체의 변환에 대해서 설명하고 있습니다. 이 웹사이트에서 변환행렬과 행렬연산에 관한 내용을 찾아보실 수 있습니다. 아래의 예시는 OnXform의 행렬과 일반적으로 회전 변환에 사용되는 행렬을 비교하고 있습니다. 같은 원리를 다른 변환에도 적용시킬 수 있습니다.

아래는 기하체의 회전을 위한 Grasshopper 정의와 그의 결과물로 나타난 행렬값입니다.  옆의 하얀색 표에 나타난 행렬의 형식과 비교해보시기 바랍니다.

그림 22 기하체의 회전과 변환 행렬

One thought on “Essential Mathematics for Computational Design 16 회전 변환

  1. Pingback: Generative Algorithm 022 « Geometricmind

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s