Two-Dimensional Geometric Transformations

Slides:



Advertisements
Similar presentations
Term project. Touch-screen 활용 그림판 –Touch-screen 을 입력장치로 하여 LCD 상에 그림을 그리는 프로그램 – 터치 입력을 절대 좌표로 받는 디바이스 /dev/touch 를 만들어 응용 프 로그램에서 수행하도록 함. –User interface.
Advertisements

1.3.1 원의 방정식. 생각해봅시다. SK 텔레콤에서는 중화동에 기지국을 세우려고 한다. 이 기지국은 중화고, 중화우체국, 뚝방에 모두 전파를 보내야 한다. 기지국은 어디에 세워야 할까 ? 중화동의 지도는 다음과 같다 원의 방정식.
수학을 통해 배우는 IT 과학의 세계 전북대: 한상언 교수.
Surface [1] Surface Feature [2] Surface의 조작 [3] Datum Curve
지적기초측량 경일대학교/부동산지적학과.
Multimedia Programming 14: Image Warping 2
서울시 ‘찾아가는 동 주민센터’ 사업 시행 이후 지역사회의 변화
이산수학(Discrete Mathematics)
Sources of the Magnetic Field
Mathematics for Computer Graphics
Mathematics for Graphics
스테레오 비젼을 위한 3장 영상의 효율적인 영상정렬 기법
6.9 Redundant Structures and the Unit Load Method
강원대학교 공과대학 제어계측공학과 2010년도 제2학기
대림대학교 2017년도 1학기 강의 왕보현 순서도와 스크래치 5주차 대림대학교 2017년도 1학기 강의 왕보현
OpenGL 발표일 : 발표자 : 조윤혜.
Lecture #7 제 4 장. 기하학적 객체와 변환 (2).
기하학적 객체와 변환.
사원수 (Quaternion)
Procedural Modeling of Buildings
4장 기하학적 객체와 변환 – 변환 학습목표 예제 - 회전입방체 표준 변환을 배운다 동차좌표 변환행렬의 유도
기초 이론.
Multimedia Programming 11: Image Warping
Chapter 13. Computer Animation
Computer Vision & Pattern Recognition Lab. 김 태 철 (월)
Geometric Transformations
제 4 장 응력과 변형률.
Chapter 7. Three-Dimensional Viewing
Point Pattern Matching by Using Parameterization
A Moments of Areas.
행렬 기본 개념 행렬의 연산 여러가지 행렬 행렬식 역행렬 연립 일차 방정식 부울행렬.
강원대학교 공과대학 제어계측공학과 2010년도 제2학기
애니메이션 기법과 장면그래프 HyoungSeok Kim
5. 단면의 성질 단면(section)이란 부재축(부재길이 방향)과 직교하는 면으로 절단한 평면을 말한다. 절단된 부재는 균일한 재료로 구성되어 있다고 가정한다. 구조부재가 힘을 받을 때, 그 부재의 응력도(stress)와 변형도(strain)를 구하기 위해 단면에 관한.
Matrix 및 Rendering 파이프라인
수학 토론 대회 -도형의 세가지 무게중심 안다흰 임수빈.
MATLAB Image Processing Toolbox
SEOUL NATIONAL UNIVERSITY OF SCIENCE & TECHNOLOGY
Clipping 이진학.
다면체 다면체 다면체: 다각형인 면만으로 둘러싸인 입체도 형 면: 다면체를 둘러싸고 있는 다각형
SEOUL NATIONAL UNIVERSITY OF SCIENCE & TECHNOLOGY
Tween Animation 천승현.
Progress Seminar 선석규.
CAD 실습 2013년 2학기.
Real time Interaction HyoungSeok Kim
1. 선분 등분하기 (1) 주어진 선분 수직 2등분 하기 ① 주어진 선분 AB를 그린다. ② 점 A를 중심으로 선분AB보다
MATLAB Image Processing Toolbox
Window, Viewport Window, Viewport.
서울대학교 컴퓨터공학부 김명수 행렬과 2차원 변환 서울대학교 컴퓨터공학부 김명수
2장 변형률 변형률: 물체의 변형을 설명하고 나타내는 물리량 응력: 물체내의 내력을 설명하고 나타냄
벡터의 성질 - 벡터와 스칼라 (Vector and Scalars) - 벡터의 합 -기하학적인 방법
Chapter 1 단위, 물리량, 벡터.
원의 방정식 원의 방정식 x축, y축에 접하는 원의 방정식 두 원의 위치 관계 공통접선 원과 직선의 위치 관계
그래픽 메소드.
Chapter 1 단위, 물리량, 벡터.
프로그램분석 어떻게하나 (quick/tiny)
2.7 행렬 (Matrices] 이산수학 (Discrete Mathematics) Matrix Reloaded
이산수학(Discrete Mathematics)
웹과 모바일 홈페이지의 이해와 제작 폰트_레이아웃
회전하는 공구를 현재 위치에서 임의의 좌표 위치까지 직선으로 위치이동하며 빠른 공구이동을 위한 명령이다.
7장 원운동과 중력의 법칙.
Geometry and Algebra of Projective Views
제10장. Other Models of TM’s 학습목표
SEOUL NATIONAL UNIVERSITY OF SCIENCE & TECHNOLOGY
Copyright Prof. Byeong June MIN
Ch. 11 각운동량(Angular Momentum)
Lecture #6 제 4 장. 기하학적 객체와 변환 (1).
Chapter 2. Coulomb’s Law & Electric Field Intensity
Chapter 4. Energy and Potential
Presentation transcript:

Two-Dimensional Geometric Transformations 5

Contents Preliminary Basic transformations Homogeneous coordinate System Composite transformations Reflection and Shearing Transformations between coordinate systems

Geometric Transformation 물체의 좌표를 바꾸는 것 Translation, Rotation, Scaling Motivation - Why do we need transformations in computer graphics? As a viewing aid As a modeling tool As an image manipulation tool

Translation y P x (a) y P’ x (b)

Rotation 회전 : 원호를 따라 이동  회전각이 양수  반시계방향 좌표계의 중심이 회전점인 경우 행렬식 x = r cos  , y = r sin  x’ = r cos ( + ) = r cos  cos  - r sin  sin  y’ = r sin ( + ) = r cos  sin  + r sin  cos   x’= x cos  - y sin , y’ = x sin  + y cos  행렬식 P’ = R P (x,y) r   (x’,y’) 죄표중심을 회전점으로 각  만큼 회전

Rotation (계속) 임의의 점을 회전점으로 회전하는 경우  x’ = xr + (x-xr) cos  - (y-yr) sin  y’ = yr + (x-xr) sin  + (y-yr) cos  회전점을 원점으로 이동(translation) 원점 중심 회전(rotation) 회전점 위치 복원(translation) (x,y) r   (x’,y’) 점 (xr,yr)을 회전점으로 각  만큼 회전 (xr,yr)

정사각형을 sx=2, sy=1로 직사각형으로 변환 Scaling Scaling : 물체의 크기 변환 x’ = x · sx , y’ = y · sy Scaling factor : sx (x축으로 크기 조정), sy (y축으로 크기 조정) 행렬식 P’ = S · P 균일신축(Uniform Scaling) sx = sy 정사각형을 sx=2, sy=1로 직사각형으로 변환

Scaling (계속) Scaling factor < 1 고정된 점(xf, yf) 에 대해 비율을 유지하는 신축 크기 줄임과 동시에 물체를 좌표 중심 쪽으로 이동 고정된 점(xf, yf) 에 대해 비율을 유지하는 신축 x’ x P2 (xf, yf) : fixed point x y (xf,yf) P1 P3 x’ = xf + (x-xf) sx , y’ = yf + ( y- yf) sy

Homogeneous Coordinates In basic Transformations, ( Addition ) Only Translation is treated differently ( Multiplication ) ( Multiplication ) How can we represent the composite transformaiton into a single matrix? M

Extend the matrix We can solve this problem by extending 2 by2 matrix into 3 by 3 matrix Translation Rotation Scaling Ex) P2 (xf, yf) : fixed point x y (xf,yf) P1 P3

3D Representarion of homogeneous space Any two dimensional point can be represented by one of the points along the ray in 3D space y x z =3 z =2 z =1 P(3x1,3y1,3) P(2x1,2y1,2) P(x1,y1,1) P(hx1,hy1,h) = P(X,Y, h) 3D Representarion of homogeneous space

Point at Infinity The points with h=0 are called points at infinity, and this will not appear very often. Ex) [ X Y h ] = [ 4 3 1]

Point at Infinity(Cont’d) Ex) The intersection point of two Parallel lines There is no inverse matrix in the matrix… So we choose another alternative formulation

Point at Infinity(Cont’d) The resulting homogeneous coordinates [1 -1 0] represent the ‘point of intersection’ for the two parallel lines, i.e. a point at infinity.

Non-Homogeneous treatment !! Why Homogeneous? B A Two Lines are intersect each other if they are not parallel Non-Homogeneous treatment !!

General 2D Transformation Matrix Rotation Scaling Translation Perspective transformation Where,

Composite Transformation Composite Transformation Matrix

Composite Transformation 연속적인 두 번 평행이동 (5-23) P’ = T(tx2, ty2) · {T (tx1, ty1)·P} = {T(tx2, ty2) · T (tx1, ty1)} · P (5-24) (5-25) T(tx2, ty2) · T (tx1, ty1) = T(tx1 + tx2, ty1 + ty2) 연속적인 두 번 회전 (5-26) P’ = R(2) · {R(1) · P} = {R(2) · R(1)} · P (5-27) R(2) ·R(1) = R(2+1) (5-28) P’ = R(2+1) · P

Composite Transformation (계속) 연속적인 두 번 신축 (5-29) (5-30) S(sx2, sy2) · S (sx1, sy1) = S(sx1· sx2, sy1 · sy2)

Pivot-Point Rotation 고정된 점을 중심으로 회전 1. 중심점을 좌표축의 중심으로 이동 2. 원점을 중심으로 회전 3. 중심점을 원래 위치로 이동 (5-31) (5-32) T(xr, yr) · R() · T (-xr, -yr) = R(xr, yr, ) (xr,yr) (xr,yr) 고정점(xr,yr)을 중심으로 물체 회전

General Fixed-Point Scaling 고정점에 대한 신축 1. 중심점을 좌표축의 중심으로 이동 2. 원점을 중심으로 크기 변경 3. 중심점을 원래 위치로 이동 (5-33) (5-34) T(xf, yf) · S(sx, sy) · T (-xf, -yf) = S(xf, yf, sx, sy) (xf,yf) (xf,yf) 고정점(xf,yf)을 중심으로 물체 신축

General Scaling Directions 임의의 방향으로 신축 (5-35) y s2 y y (2,2) (1/2,3/2) (0,1) (1,1) (3/2,1/2)  x x x (0,0) (1,0) (0,0) s1 x축으로부터 경사진 방향에 신축 적용 정사각형을 평행사변형으로 바꿈

Concatenation Property 합성의 성질 일반적인 행렬 (5-36) A· B· C = (A· B) · C = A· ( B· C ) 변환행렬의 교환법칙은 성립하지 않는다. 평행이동후 회전, 회전후 평행이동의 결과

Reflection 좌표축에 대한 반사 : 180도 회전 • x축에 대한 반사 • y축에 대한 반사 • xy축(원점)에 대한 반사 (5-48) (5-49) (5-50) y 1 2 3 x 2’ 3’ 1’ x축에 대한 반사 y축에 대한 반사 원점에 대한 반사

y=x 축에 대한 반사 (5-51) - 시계방향으로 45도 회전  x축에 반사  반시계 방향으로 45도 회전

y=-x 축에 대한 반사 (5-52) - 반시계 방향으로 45도 회전  y축에 반사  시계방향으로 45도 회전

Shear x 축으로 밀림 reference line y=yref에 대한 밀림 (5-53) (5-54) x’ = x + shx · y, y’ = y reference line y=yref에 대한 밀림 (5-55) (5-56) x’ = x + shx · (y-yref), y’ = y x축으로 밀림 (Shx=2) 선분에 대한 밀림 (Shx=1/2, yref=-1)

Shear (계속) y축으로 밀림 (선분 x=xref에 대한) (5-57) (5-58) x’ = x, y’ = shy · (x-xref) + y 선분에 대한 밀림 (Shy=1/2, xref=-1)

Transformation between Coordinate Systems 다른 좌표계 간의 이동 예 1. x’y’ 좌표계의 중심 (x0, y0)을 xy좌표계의 중심으로 이동 2. x’축을 x축으로 회전  M(xy,x’y’) = R(-) T(-x0, -y0) xy좌표계와  의 각을 이루고 중심이(x0, y0)인 x’y’ 좌표계 x’y’ 좌표계의 xy좌표계로의 중심 이동

Transformation between Coordinate Systems (계속) x’y’ 좌표계의 축 방향과 같은 방향 벡터 구하기 (5-62) (5-63) u = (vy, -vx) = (ux, uy) (5-64) P0에 대한 V의 방향을 구하는 것이 편리 (5-65) u = R(90) ·v y’축 방향이 벡터 V와 같고 중심이 P0=(x0, y0)인 x’y’ 좌표계 xy좌표계의 두 점 P0, P1에 의해 정의된 x’y’ 좌표계

Raster Method for Transformation Raster system은 frame buffer에 pixel정보 저장 저장된 픽셀 정보의 이동으로 변형을 나타냄 적은 수행 명령(raster op)을 사용하므로 유용 block transfer bitblt : bit-block transfer pixBlt : pixel이 여러 bit으로 이뤄진 경우 래스터 영역의 블록 이동 read, copy, write 래스터 영역 블럭 이동

Raster Method for Transformation (계속) 래스터 90°회전(반시계) 1. 각 열을 reverse 2. 행과 열 바꿈 래스터 180°회전 1. 각 열 원소의 순서 바꿈 2. 각 열의 순서 바꿈 90°의 배수가 아닌 경우 회전 1. 목적지에 회전된 영역을 매핑 2. 매핑된 영역의 비율로 intensity 계산 신축 1. 지정된 sx, sy 로 원래 영역을 scale 2. 목적지 pixel에 매핑 3. Scale된 intensity 로 변경 é 1 2 3 ù é 12 11 10 ù ê ú é 3 6 9 12 ù , ê ú ê 4 5 6 ú ê ú 9 8 7 2 5 8 11 ê ú ê ê ú 7 8 9 ú ê 6 5 4 ú ê ú ê ë 1 4 7 10 û ú ê ú ë 10 11 12 û ë 3 2 1 û 래스터 90°, 180°도 회전 임의의 각 래스터 회전 신축된 배열 매핑