Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

GameMath-Chapter 03 변환

3,166 views

Published on

Published in: Education
  • Be the first to comment

  • Be the first to like this

GameMath-Chapter 03 변환

  1. 1. 3 장 변환
  2. 2. 이장에서는 무엇을 배우나? <ul><li>변환 </li></ul><ul><li>좌표계 </li></ul><ul><li>이동변환 </li></ul><ul><li>회전변환 </li></ul><ul><li>크기변환 </li></ul><ul><li>동차좌표계 </li></ul><ul><li>좌표계의 변환 </li></ul>
  3. 3. <ul><li>변환의 목적 </li></ul><ul><li>첫째 . 한 정점의 위치벡터를 이동시키기 위한 것 ->  이동변환 ( 위치변환 ) </li></ul><ul><li>ex) 미사일이 포물선을 그리며 이동 , 탱크 </li></ul><ul><li>가 앞뒤로 움직이는것 </li></ul><ul><li>둘째 . 방향 벡터의 자세를 변화시키는 데 사용된다 -> 회전변환 ( 자세변환 ) </li></ul><ul><li>ex) 포를 쏠 각도를 조절하는것 . </li></ul><ul><li>  </li></ul>
  4. 4. 2. 좌표계 <ul><li>좌표계는 하나의 기준이다 </li></ul><ul><li>변환을 수학적으로 설명하기 위해서는 기준인 좌표계가 있어야 하며 , 이좌표계를 통한 좌표로 변환을 서술해야 한다 </li></ul><ul><li>종류 </li></ul><ul><li>① 직교 ② 원기둥 ③ 구면 </li></ul>
  5. 5. ① 직교 좌표계 <ul><li>공간상에 어떠한 점이나 벡터를 표현할 때 유용하게 사용 </li></ul>
  6. 6. ② 원기둥 좌표계 <ul><li>비행 시뮬레이션 게임처럼 자신을 원점으로 했을 때 어떤 좌표의 거리와 방향, 높이가 중요할 경우 편리 </li></ul>(x, y, z) = (rcosθ, rsinθ, z)
  7. 7. ③ 구면 좌표계 (x, y, z) = (ρcosθsinφ, ρsinθsinφ, ρcosφ)
  8. 8. 3. 이동 변환 <ul><li>이동 변환은 기본적으로 하나의 좌표를 이동시키는 것이다 </li></ul><ul><li>이동 크기를 더해줌으로써 수행 </li></ul><ul><li>        d=[4,3] </li></ul><ul><li>P1=(0.0)    ->    P1'=(4,3) </li></ul><ul><li>P2=(4,0)    ->    P2'=(8,3) </li></ul><ul><li>P3=(4,2)    ->    P3'=(8,5) </li></ul><ul><li>P4=(0,2)    ->    P4'=(4,5) </li></ul>
  9. 9. 4. 회전 변환 <ul><li>주어진 각도만큼 회전축을 기준으로 회전하는 변환 </li></ul><ul><li>① 2 차원 평면 </li></ul>
  10. 10. ② 2 차원 평면 회전의 3 차원확장
  11. 11. ③ 3차원 공간 회전 <ul><li>공간회전축을 x,y,z 회전축으로 분해하 </li></ul><ul><li>여 표현할 수 있다 . </li></ul><ul><li>변환의 연결 </li></ul><ul><li>예를 들어 x 축을 기준으로 30˚ 회전시킨 후 , y 축을 기준으로 60˚ 회전시키려면 </li></ul><ul><li>주의해야 할 점은 x 축으로 30˚ 를 회전하면 좌표축 전체가 이동하기 때문에 </li></ul><ul><li>y 축의 위치도 바뀐다는 점이다 . 따라서 순서가 바뀌면 안된다 . </li></ul>
  12. 12. <ul><li>(2) 오일러 변환 </li></ul><ul><li>x,y,z 축을 각각 회전축으로 했을 때 각 회전축에 대한 회전각으로 3 차원 공간 회전 변환 행렬을 정의한다 . </li></ul><ul><li>Z-Y-X 오일러 변환 </li></ul>
  13. 14. ④회전 행렬의 성질 <ul><li>회전 행렬끼리의 곱은 회전 행렬이다 </li></ul><ul><li>R T (θ)=R -1 (θ) </li></ul><ul><li>R=[XYZ] 와 같은 열벡터로 구성되었다고 하면 </li></ul><ul><li>|X|=|Y|=|Z|=1 </li></ul><ul><li>X·Y=X·Z=Y·Z=0 ∴ 회전행렬은 직교행렬 </li></ul>
  14. 15. 5. 크기 변환
  15. 16. 6. 동차 좌표계 ① 동차 좌표 모조 좌표 (dummy coordinate) 를 추가하여 n  n 행렬로 연산 3 차원에서 회전과 크기 변형은 가능하지만 평행 이동과 투영은 불가능 모조 좌표 w 를 추가하여 점을 p(x,y,z,w) 로 표시 초기에는 w =1 로 설정 아핀 변환의 문제점 동차 좌표로 해결 4  4 행렬로 통일하기 위해 동차 좌표를 이용  모든 아핀 변환을 동차 좌표의 행렬 곱으로 표현 가능  변환 합성이 용이  수치 계산의 감소  고속 계산을 위한 병렬 처리가 가능 장점 크기 변형 회전 비틀기 평행 이동
  16. 17. ② 동차 좌표계에서의 변환 <ul><li>이동변환 (translation) </li></ul><ul><li>물체를 정의하는 모든 점에 대해 3 개의 변수들을 이동 </li></ul>x y z x y z
  17. 18. 회전 (Rotation) <ul><li>회전 (rotation) </li></ul><ul><li>3 차원 회전은 각 축에 대해 독립적으로 이루어진다 . </li></ul>x y z x y z
  18. 19. 크기 변형 (Scaling) <ul><li>크기 변형 (scaling) </li></ul><ul><li>모든 3 차원에서 독립적인 확대 및 축소 변형 </li></ul>x y z x y z
  19. 20. 시어 (Shear) <ul><li>시어 (shear) </li></ul><ul><li>하나의 객체는 6 개의 독립적인 방법으로 비틀기 가능 </li></ul>x y z x y z
  20. 21. 7. 좌표계의 변환 <ul><li>실제 3D 프로그래밍에서는 좌표계를 기준으로 변환을 수행 </li></ul><ul><li>하나의 좌표계보다 여러 개의 좌표계상에서 각각의 물체를 표현하는 것이 더 편리 </li></ul>
  21. 22. ① 월드 좌표계와 로컬 좌표계 B: 월드 좌표계로서 3 차원 공간상의 가장 기본이 되는 고정된 좌표계 T: 움직이는 로봇 손의 끝단을 나타내는 좌표계로 , 로봇의 관절이 움직임에 따라 B 에 대해서 회전과 이동 변환이 수행된 좌표계 S: 로봇이 작업을 할 작업 테이블의 원점 좌표계며 , 이 또한 B 에 대해서 회전과 이동 변화이 수행된 좌표계이다 G: 작업 테이블의 기준 좌표계 S 에 대해서 회전과 이동 변환이 수행된 좌표계이며 테이블 위에 놓여있는 보트의 위치와 자세를 묘사 월드 좌표계 : B 로컬 좌표계 : T,S,G
  22. 23. ② 좌표계의 변환 <ul><li>(1) 좌표계의 이동 변환 </li></ul>A P= B P+d A P=T B P
  23. 24. <ul><li>(2) 좌표계의 회전변환 </li></ul>A P=R B P
  24. 25. <ul><li>(3) 동차 변환 행렬 </li></ul>A P=R B P + d
  25. 26. <ul><li>(4) 변환의 연결 </li></ul>
  26. 27. 수고하셨습니다 ^________^;;

×