관리 메뉴

Kim's Programming

3차원 그래픽스 기하변환 본문

Computer Theory/Computer Graphics

3차원 그래픽스 기하변환

Programmer. 2016. 1. 24. 16:51

3차원 기하변환


이동(Translation)



3차원 공간에서 객체의 이동은 2차원 객체와 마찬가지로 다면체를 구성하는 각 꼭지점을 이동시키고 난다음 이들을 연결하여 다면체를 새로 그리면 됩니다. 3차원 공간에서의 한점 P(x,y,z)가 각 축 방향으로 (tx,ty,tz)만큼 이동한점 P'(x',y',z')의 좌표는 다음과 같이 나타냅니다.



또한 동차좌표계를 이용한 행렬로 표현하면 다음과 같이 됩니다.




신축(Scale)




3차원 공간에서 P(x,y,z)를 원점을 기준으로 하여 각 축의 방향으로 (sx,sy,sz)배 만큼 신축변환을 수행한 점 P'(x',y',z')를 다음과 같이 표현이 가능하며



또한 동차좌표계를 이용한 행렬로 표현하면 다음과 같이 됩니다.



만약 원점이 기준이 아니라 (x0, y0, z0) 기준으로 신축하는 경우에는 다음과 같이 됩니다.


객체를 원점 중심으로 신축할 수 있게 움직여 준 다음 신축을 하게 됩니다.



회전(Rotation)






3차원 공간에서 회전변환은 주로 기준축을 중심으로 객체가 놓여있는 방향을 일정 각도로 바꾸게 합니다. 간단하게는 축을 기준으로 회전하게 되며 각 축을 중심으로 세타 만큼 회전하였을 때 회전변환된 점은 다음과 같이 구하게 됩니다.





축이 아니라 특정 선분을 기준으로 하면 그 선분을 축에 맞춰줘야 하는데 너무 복잡해 져서 생략하겠습니다.



3차원 기타변환



반사(Reflection)





2차원에서는 평면에서 객체의 반사를 직선이나 점에 대해서 대칭을 시켰습니다. 그에반해 3차원에서는 펴면에 대해서 반사를 시키게 됩니다. 3차원에서는 반사에 대한 3가지 경우가 있으며 xy평면, yz평면, xz평면에 대해서 반사를 하는 경우들이 있습니다.





밀림(Shearing)





2차원 평면에서의 밀림변환과 같이 3차원에서도 밀림을 하면 기울어 지거나 찌그러집니다. 3차원 공간에서도 일정 부분을 고정시키고 일정 방향으로 미는 경우 고정된 지점에서 멀수록 밀림이 더 많아집니다. 밀림은 x방향, y방향, z방향을 기준으로 밀릴 수 있습니다.