Các phép biến đổi đồ hoạ Affine Transformations

Mô hình hoá - Modelling 􀂄 Mô hình hoá là tiến trình tạo mới thao tác trên các mô hình của các đối tượng hay hệ thống 􀂄 Computer graphics ~ quan tâm đến mô tả hình học của các đối tượng nhằm cung cấp phương pháp biểu diễn số cho các hình trên cơ sở về kích thước và các thuộc tính có liên quan đến tiến trình tô trát 􀂄 Các đối tượng hình học thường được mô tả bởi các thuật ngữ "thực thể cơ sở" sub-parts (primitives), như circles, lines polygons hay cubes 􀂄 A scene trong đồ họa: chứa các thực thể đối tượng Scene Modeling 􀂄 Đặt các đối tượng trong cảnh tại các vị trí khác nhau, thay đổi tỉ lệ và biến đổi

pdf14 trang | Chia sẻ: tlsuongmuoi | Lượt xem: 2839 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Các phép biến đổi đồ hoạ Affine Transformations, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Khoa CNTT - DDHBK Hà nội hunglt@it-hut.edu.vn 8682595 1 (c) SE/FIT/HUT 2002 1 Bài 4 Các phép biến đổi Đồ hoạ Affine Transformations Le Tan Hung Email: hunglt@it-hut.edu.vn I KHái niệm cơ bản II Các phép biến đổi III Hệ tọa độ đồng nhất (c) SE/FIT/HUT 2002 2 Mô hình hoá - Modelling „ Mô hình hoá là tiến trình tạo mới thao tác trên các mô hình của các đối tượng hay hệ thống „ Computer graphics ~ quan tâm đến mô tả hình học của các đối tượng nhằm cung cấp phương pháp biểu diễn số cho các hình trên cơ sở về kích thước và các thuộc tính có liên quan đến tiến trình tô trát „ Các đối tượng hình học thường được mô tả bởi các thuật ngữ "thực thể cơ sở" sub-parts (primitives), như circles, lines polygons hay cubes „ A scene trong đồ họa: chứa các thực thể đối tượng Scene Modeling „ Đặt các đối tượng trong cảnh tại các vị trí khác nhau, thay đổi tỉ lệ và biến đổi object A scene with several instances of the object (c) SE/FIT/HUT 2002 Ví dụ „ At each frame of the animation, the object is transformed, in this case by a rotation. It could also be transformed by changing its size (scaling), or its shape (deforming), or its location (translation). „ Further animation effects can be achieved by not changing the object, but the way it is viewed (i.e. the window to viewport transformation) at each frame (e.g. by zooming). (c) SE/FIT/HUT 2002 4 Phép biến đổi - Transformations „ Trong kỹ thuật đồ hoạ 3 bước: modeling, rendering, displaying „ Với Modeling: „ Transformation: là phép ánh xạ tọa độ điểm hay vector thành tọa độ hay vector khác „ Biến đổi mô hình hoá - Modeling transformations „ build complex models by positioning simple components „ Biến đổi tạo góc nhìn - Viewing transformations „ placing virtual camera in the world „ transformation from world coordinates to camera coordinates „ Biến đổi tạo Hoạt cảnh - Animation „ vary transformations over time to create motion modeling coordinate Modeling transformation Viewing transformation world coordinate viewing coordinate (eye coordinate) (c) SE/FIT/HUT 2002 5 Transformations - Modeling world (c) SE/FIT/HUT 2002 6 Viewing Transformations - Viewing „ Viewing là tiến trình tạo ra góc nhìn của các mô hình trên màn hình 2D „ Mô tả hình học của các đối tượng hay các cảnh cung cấp bởi các mô hình sẽ được chuyển đổi thành tập các thực thể cơ sở hiển thị. „ Một mô hình có thể quan sát trên các góc cạnh khác nhau (e.g. faraway, near, looking down, looking up) WORLD OBJECT CAMERA Khoa CNTT - DDHBK Hà nội hunglt@it-hut.edu.vn 8682595 2 (c) SE/FIT/HUT 2002 7 Phép biến đổi Affine Affine Transformations? „ Phép biến đổi Affine là phép biến đổi tọa độ điểm đặc trưng của đối tượng thành tập tương ứng các điểm mới để tạo ra các hiệu ứng cho toàn đối tượng. „ Ví dụ: phép biến đổi tọa độ với chỉ 2 điểm đầu cuối của đoạn thẳng tạo thành 2 điểm mới mà khi nối chúng với nhau tạo thành đoạn thẳng mới. „ Các điểm nằm trên đoạn thẳng sẽ có kết quả là điểm nằm trên đoạn thẳng mới với cùng phép biến đổi thông qua phép nội suy. (c) SE/FIT/HUT 2002 Phân loại - Transformations „ Có 2 cách nhìn trên phép biến đổi „ Object Transformation: thay đổi tọa độ của các điểm theo một số các quy luật mà không ảnh hưởng đến hệ tọa độ gốc. „ Coordinate Transformation sinh ra hệ tọa độ khác và biểu diễn tất các các đểm trên hệ tọa độ mới đó „ Mỗi phương pháp có ưu nhược điểm riêng về bản chất gần tương đồng nhau 1,1 .4, 2 Example: OBJECT TRANSFORMATION (1,1) (1,1) Example: COORDINATE TRANSFORMATION (c) SE/FIT/HUT 2002 9 Modeling Transformations Transform objects/points Transform coordinate system (c) SE/FIT/HUT 2002 2D Object Transformations „ A 2D object transformation alters each point P into a new point Q using a specific formula or algorithm. „ It therefore alters the co-ordinates of P (Px,Py) into new values which specify point Q (Qx,Qy) „ This can be expressed using some function T, that maps co-ordinate pairs into co-ordinate pairs: „ T(Px,Py) = (Qx,Qy) „ or: „ T(P) = Q (c) SE/FIT/HUT 2002 Matrix Representation „ If affine transformation T maps P onto Q, then Q is related to P as follows: „ „ „ where a, b, c, d, tx and ty are all constants, and ad = bc „ This gives rise to the following matrix representation: „ i.e. ⎟⎟⎠ ⎞ ⎜⎜⎝ ⎛+⎟⎟⎠ ⎞ ⎜⎜⎝ ⎛ ⎟⎟⎠ ⎞ ⎜⎜⎝ ⎛=⎟⎟⎠ ⎞ ⎜⎜⎝ ⎛ y x y x y x t t P P dc ba Q Q xxxx t bP aP Q ++= yyyy t dP cP Q ++= Tr MP Q += (c) SE/FIT/HUT 2002 12 Các phép biến đổi hình học hai chiều „ Phương pháp biểu diễn đối tượng P = [ x y ] „ Phép biến đổi vị trí điểm „ Thực thi phép biến đổi đúng trên 1 điểm ảnh sẽ đúng trên toàn bộ đối tượng ⎥⎦ ⎤⎢⎣ ⎡= dc ba T [ ] [ ] [ ] ( ) ( )[ ] [ ]'' y dybx *y * xcyax dc ba xTX =++=⎥⎦ ⎤⎢⎣ ⎡= y x z pM pW Khoa CNTT - DDHBK Hà nội hunglt@it-hut.edu.vn 8682595 3 (c) SE/FIT/HUT 2002 13 Phép biến đổi „ Phép bất biến „ Phép biến đổi tỉ lệ - Scaling „ A scaling changes the size of an object with two scale factors, Sx and Sy „ Phép biến dạng „ A shearing shears an object in a particular direction, (in 2D, it’s either in the x or in the y direction ⎥⎦ ⎤⎢⎣ ⎡= 10 01 T [ ] [ ] [ ] ( )[ ] [ ]'' 10 0 ** yxyax a yxTX ==⎥⎦ ⎤⎢⎣ ⎡= [ ] [ ] [ ] [ ] [ ]'' 10 1 ** yxdybx b yxTX =+=⎥⎦ ⎤⎢⎣ ⎡= xz y (c) SE/FIT/HUT 2002 14 Phép quay- Rotation x = ρ cos α, y = ρ sin α ; x’ = ρ cos (θ +α ), y’ = ρ sin (θ +α ) ; x’ = ρ ( cosθ cosα - sinθ sinα ) = x cosθ - y sinθ y’ = ρ ( sinθ cosα + cosθ sinα ) = x sinθ + y cosθ [x' y']= [xcosθ - ysinθ xsinθ + ycosθ] y ( x, y ) xα ρθ ρ ( x’, y’ ) ⎥⎦ ⎤⎢⎣ ⎡ −= θθ θθ cossin sincos ][T (c) SE/FIT/HUT 2002 15 Thuộc tính cơ bản của phép biến đổi Affine Transformations „ Preservation of lines: „ They preserve lines, so the image of a straight line is another straight line. „ This vastly simplifies drawing transformed line segments. „ We need only compute the image of the two endpoints of the original line and then draw a straight line between them „ Preservation of collinearity guarantees that polygons will transform into polygons „ Affine transformations map lines to lines; (c) SE/FIT/HUT 2002 Thuộc tính „ Preservation of parallelism „ Preservation of parallelism guarantees that parallelograms will transform into parallelograms „ Preservation of proportional distances „ Preservation of proportional distances means that mid-points of lines remain mid-points „ Affine transformations change volume by | Det(M) |; (c) SE/FIT/HUT 2002 Kết hợp các phép biến đổi Composition of Affine Transforms „ Any affine transformation can be decomposed into elementary transformations. „ Mọi phép biến đổi phức tạp đều có thể tạo thành từ các phép biến đổi cơ sở như: „ Dịch chuyển - Translation „ Tỉ lệ - Scaling „ Quay- Rotation „ Biến dạng - Shearing (c) SE/FIT/HUT 2002 Affine transformations preserve affine combinations „ It is rare that we want to perform just one elementary transformation. „ Usually an application requires that we build a complex transformation out of several elementary ones „ e.g. translate an object, rotate it, and scale it, all in one move „ These individual transformations combine into one overall transformation „ This is called the composition of transformations. „ The composition of two or more affine transformations is also an affine transformation Khoa CNTT - DDHBK Hà nội hunglt@it-hut.edu.vn 8682595 4 (c) SE/FIT/HUT 2002 19 Thuộc tính „ Tác động lên tập các điểm đặc trưng của đối tượng tạo thành phép biến đổi cho đối tượng „ We have defined each transformation by their effects on single points „ In practice these will be applied to multiple points to transfer entire scenes or objects made up of many defining points T (c) SE/FIT/HUT 2002 Điểm gốc - Pivotal points Cho phép quay và tỉ lệ Rotation and Scaling „ The simple versions of rotation and scaling have been based around the origin. „ This means that when we rotate or scale, the object will also move, with respect to the origin „ Translate all points through (-c1,-c2) „ Rotate all points about the origin by „ Translate all points back through (c1,c2) (c1,c2) (0,0) (c) SE/FIT/HUT 2002 Pivotal points „ Often we wish to rotate or scale with respect to some pivotal point, not the origin „ Most significantly, we often wish to rotate or scale an object about its centre, or midpoint „ In this way, the object’s location does not change „ To do this, we relate the rotation or scaling about the pivotal point V, to an elementary rotation or scaling about the origin „ We first translate all points so that V coincides with the origin „ We then rotate or about the origin „ then all points are translated back, so that V is restored to its original location (c) SE/FIT/HUT 2002 Hệ toạ độ đồng nhất „ Vấn đề gặp phải: „ An affine transformation is composed of a linear transformation followed by a translation „ Unfortunately, the translation portion is not a matrix multiplication but must instead be added as an extra term, or vector „ What we need is a “trick”, so that translations can be represented in matrix multiplication form „ This then means that they can be easily composed with other transformations, by simply multiplying the matrices together (c) SE/FIT/HUT 2002 23 Tọa độ đồng nhất Homogeneous Transform „ x' = ax + by + n „ y' = bx + dy + m „ Phương pháp biểu diễn mở rộng thông qua tọa độ đồng nhất của các vector vị trí „ Với ứng dụng của phép chiếu hình học mà ở đó tọa độ điểm được mô tả dưới ma trận [ x* y* h] „ với x = x*/h, y = y*/h, z = z*/h và h là một số thực tuỳ ý (c) SE/FIT/HUT 2002 24 Ưu điểm của Hệ tọa độ đồng nhất Homogeneous Transform „ Ðưa ra cái nhìn hợp nhất của các phép biến đổi dưới phép nhân ma trận, hỗ trợ cho việc xử lý bằng cả phần cứng và phần mềm „ Kết hợp các các phép biến đổi tạo thành ma trận tích đơn giản duy nhất. Tránh nhầm lẫn về thứ tự của các phép nhân khi sử dụng. „ Order matters: AB is generally not the same as BA „ Cho phép kết hợp với cả các phép biến đổi đặc biệt không tuyến tính khác(non-affine) như: „ Phép chiếu phối cảnh - Perspective projections! „ Uốn - Bends, Vuốt tapers v.v.v Khoa CNTT - DDHBK Hà nội hunglt@it-hut.edu.vn 8682595 5 (c) SE/FIT/HUT 2002 25 Phép biến đổi với tọa độ đồng nhất „ Ma trận biến đổi đồng nhất „ Phép tịnh tiến ⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ = 1 0 0 ][ nm dc ba T ]1[ 1 010 001 ]1[]1''[ nymx nm yxyx ++= ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ = (tx, ty, tz) (c) SE/FIT/HUT 2002 26 Phép tỉ lệ ]12.1.[ 100 020 001 ]1[]1''[ SySxS S yxyx = ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ = (c) SE/FIT/HUT 2002 27 Phép quay y ( x, y ) xα ρθ ρ ( x’, y’ )⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ −= 100 0cossin 0sincos ]1[]1''[ φφ φφ yxyx ]1cos.sin.sin.cos.[ φφφφ yxyx +−= (c) SE/FIT/HUT 2002 28 Phép biến đổi tổng hợp (c) SE/FIT/HUT 2002 Coordinate Transforms (c) SE/FIT/HUT 2002 30 Coordinate Transforms (1,1) u’ v’ (1,1) u v x y Object defined in Local Coordinate System Object after transformation in Global Coordinate System Khoa CNTT - DDHBK Hà nội hunglt@it-hut.edu.vn 8682595 6 (c) SE/FIT/HUT 2002 31 x y x y Identity as a Coordinate Transform P 100 010 001 Q ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ = (1,1) u v (1,1) u’ v’ (c) SE/FIT/HUT 2002 32 x y Translation x y P 100 10 01 Q ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ = ty tx (1,1) u v (1+tx,1+ty) u’ v’ ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ = ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ 11 0 0 ty tx ty tx 100 10 01 ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ + = ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ 1 1 1 0 1 ty tx ty tx 100 10 01 ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ += ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ 1 1 1 1 0 ty tx ty tx 100 10 01 origin v (1, 0, 0) u (0, 1, 0) ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ = 1 ty tx O (c) SE/FIT/HUT 2002 33 x y Rotation x y P 100 0 0 Q ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ − = θθ θθ cossin sincos (1,1) u v u’ v’ ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ = 1 sin cos θ θ v ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡− = 1 cos sin θ θ u ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ = 1 0 0 O (c) SE/FIT/HUT 2002 34 x y Scaling x y P 100 0 0 Q ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ = sy sx 0 0 (1,1) u v (sx*1,sy*1) u v ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ = 1 0 0 O ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ = 1 0 syu ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ = 1 0 sx v (c) SE/FIT/HUT 2002 35 Composite Transformations ⎟⎟ ⎟ ⎠ ⎞ ⎜⎜ ⎜ ⎝ ⎛ −− +−− = 100 sin)cos1(cossin sin)cos1(sincos 11 11 θθθθ θθθθ xy yx M x y x y (1,1) u v u’ v ’ ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ −− +− 1 sin)cos1( sin)cos1( 11 11 θθ θθ yy yx ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ −−+ +−+ 1 sin)cos1(sin sin)cos1(cos 11 11 θθθ θθθ yy yx ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ −−+ +−+− 1 sin)cos1(cos sin)cos1(sin 11 11 θθθ θθθ yy yx O = v = u = (c) SE/FIT/HUT 2002 36 Modeling Transformations „ To make full use of the computational optimisation made possible by composite transforms, we only want to apply the transformations to points at the very end „ i.e. the transformation operation (multiplying point p by transform matrix is the very last thing we do in the modelling phase) Specify points in local coords Specify Transformations (composite if necessary) Send to Pipeline Khoa CNTT - DDHBK Hà nội hunglt@it-hut.edu.vn 8682595 7 (c) SE/FIT/HUT 2002 37 + + =This of course shouldn’t mean all objects need to share the same transformations (c) SE/FIT/HUT 2002 38 + = + transform +transform + transform Obviously we want something more versatile 1(c) SE/FIT/HUT 2002 1 Bài 4B: Phép biến đổi trong không gian (c) SE/FIT/HUT 2002 2 Ma trận biến đổi 3 chiều 3D Matrix Transformations „ Các phép biến đổi chuyển vị - translation, tỉ lệ-scaling và quay-rotation sử dụng trong không gian 2D đều co thể mở rộng trong không gian 3D „ Again, using homogeneous coordinates it is possible to represent each type of transformation in a matrix form „ In 3D, each transformation is represented by a 4x4 matrix (c) SE/FIT/HUT 2002 3 Các phép biến đổi hình học 3 chiều „ Biểu diễn điểm trong không gian 3 chiều • [ x* y* z* h ] = [ x y z 1 ]. [ T ] • [x' y' z' 1 ]= [ x*/h y*/h z*/h 1 ][ T ] „ Ma trận biến đổi ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ = snml rjig qfed pcba ][T (c) SE/FIT/HUT 2002 4 Phép tịnh tiến „ [X'] = [ X ] . [ T(dx,dy,dz) ] „ [ x' y' z' 1 ] = „ [ x y z 1 ].[ T(dx,dy,dz) ] „ = [ x+dx y+dy z+dz 1 ] ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ = 1 0100 0010 0001 )],,([ dzdydx dzdydxT (c) SE/FIT/HUT 2002 5 Phép tỉ lệ • s1, s2, s3 là các hệ số tỉ lệ tương ứng trên các trục toạ độ ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ = 1000 0300 0020 0001 11 s s s zyxzyx ][]'''[ ]13.2.1.[ szsysx= (c) SE/FIT/HUT 2002 6 Rotation „ In 2D, the only rotation possible was about the origin. „ In 3D, there are 3 possible rotations, one about each of the x, y and z axes „ Positive rotations are anti-clockwise, negative rotations are clockwise, when looking down a positive axis towards the origin x y z x y z x y z 2(c) SE/FIT/HUT 2002 7 Phép quay 3 chiều „ Quay quanh các trục toạ độ • Quay quanh trục x • Quay quanh trục z ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ −= 1000 00 00 0001 φφ φφ cossin sincos ][Tx ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ −= 1000 0100 00cossin 00sincos ][ ϕϕ ϕϕ Tz (c) SE/FIT/HUT 2002 8 Quay quanh trục y ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ − = 1000 0cos0sin 0010 0sin0cos ][ θθ θθ Ty (c) SE/FIT/HUT 2002 9 Phép biến dạng (secondary translation) ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ = 1000 01 01 01 11 ig fd cb zyxzyx ][]'''[ ]1[ zfycxizybxgzydx ++++++= (c) SE/FIT/HUT 2002 10 Phép lấy đối xứng (reflections-secondary translation) (c) SE/FIT/HUT 2002 11 Quay quanh một trục bất kỳ song song với các trục tọa độ ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ = 10 0100 0010 0001 ][ zy Tr , ⎥ ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ −= 1000 00 00 0001 φφ φφφ cossin sincos )]([T , ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ −− =− 10 0100 0010 0001 1 zy Tr][ ⎥⎥ ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎢ ⎣ ⎡ −−+− −= 1sin)cos1(sin)cos1(0 0cossin0 0sincos0 0001 ][ φφφφ φφ φφ yzzy Tth (c) SE/FIT/HUT 2002 12 Quay quanh một trục bất kỳ 3(c) SE/FIT/HUT 2002 13 Solution „ Chuyển P1 về gốc tọa độ. „ Quay quanh trục y sao cho P1P2 nằm trên mặt phẳng (y, z) „ Quay quanh trục x sao cho P1P2 trùng với trục z. „ Quay quanh trục z sao cho P1P3 nằm trên mặt phẳng (y, z) Euler’s Theorem: Every rotation around the origin can be decomposed into a rotation around the x-axis followed by a rotation around the y-axis followed by a rotation around the z-axis. (c) SE/FIT/HUT 2002 14 Bước 1: Chuyển P1 về gốc tọa độ ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ −−− =−−− 1111 0100 0010 0001 111 zyx zyxT )],,([ y P3 P2 P1 z x y P3 P2 p P1 z x (c) SE/FIT/HUT 2002 15 Bước 2: Quay quanh trục y „ cos( - 90 + φ) = sinφ = z'2/L = ( z2 - z1)/L „ sin( - 90 + φ) = - cosφ = x'2/L = ( x2 - x1)/L „ [ P''2 ] = [ P'2 ][ T(φ-90) ] „ = [ 0 y2-y1 L ] y P3 P'2(x'2,y'2,z'2) P'1 L φ z(x'2,0,z'2)x 2 12 2 12 2 2 2 2 )()()'()'( xxzzxzL −−== (c) SE/FIT/HUT 2002 16 Bước 3: Quay quanh trục x. „ cos ϕ = z''2/N, sin ϕ = y''2/N „ Với N = | P''1P''2| là độ dài của đoạn P''1P''2 „ [P'''2] = [P''2][T(ϕ)] = [P'2][T(φ-90)][T(ϕ)] „ = [P2 ][T(-x1,-y1,-z1 ][T(φ-90)][T(ϕ)] „ = [ 0 0 |P1P2| 1 ] y P''2 N P''1ϕ x z (c) SE/FIT/HUT 2002 17 Bước 4: Quay quanh trục z „ [P'''3]= [P3 ][T(-x1,-y1,-z1 ][T(φ-90)][T(ϕ)] „ Với góc quay dương ψ trên trục z „ cos ψ = y3'''/M; sin ψ = x3'''/M; „ Ma trận tổng hợp của các phép biến đổi [ T ] có dạng sau đáp ứng toàn bộ quá trình biến đổi quay đối tượng quanh một trục bất kỳ. „ [ T ] = [T(-x1,-y1,-z1)][T(φ-90)][T(ϕ)][T(ψ)] y y'''3 P'''3ψ M x'''3 P'''2P'''1 x z (c) SE/FIT/HUT 2002 18 „ Kết quả sau biến đổi cần phải đưa về vị trí ban đầu qua các phép biến đổi ngược. „ [Tth]= [T(-x1,-y1,-z1)]x[T(φ-0)]x[T(ϕ)]x [T(ψ)]x[T(ψ)]x[T(ϕ)]x „ [T(φ-90)]x[T(-x1,-y1,-z1)] 4(c) SE/FIT/HUT 2002 19 Hệ toạ độ Coordinate Frame „ Coordinate frame is given by origin φ and three mutually orthogonal unit vectors, i, j, k. „ Mutually orthogonal (dot products): i•j = ?; i•k = ?; j•k = ?. „ Unit vectors (dot products): i•i = ?; j•j = ?; k•k = ?. xz y i j k φ (c) SE/FIT/HUT 2002 20 Orientation xz y i j k φ Right handed coordinate system: Left handed coordinate system: Cross product: i x j = ? xz y i j k φ Cross product: i x j = ? (c) SE/FIT/HUT 2002 21 Coordinate Transformations xz y i j k φ Transform (x, y, z, 0) coordinate frame to (i, j, k, φ) coordinate frame. Affine transformation matrix: Maps (i, j, k, φ) coordinates into (x, y, z, 0) coordinates! . 1000 ⎥ ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ φ φ φ zzzz yyyy xxxx kji kji kji (c) SE/FIT/HUT 2002 22 Coordinate change (Translation) (φx, φy, φz) . 110001 ⎟⎟ ⎟⎟ ⎟ ⎠ ⎞ ⎜⎜ ⎜⎜ ⎜ ⎝ ⎛ ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ = ⎟⎟ ⎟⎟ ⎟ ⎠ ⎞ ⎜⎜ ⎜⎜ ⎜ ⎝ ⎛ c b a z y x xz y a c b (0,0,0) Change from (a,b,c,φ) coordinates to (x,y,z,0) coordinates: (c) SE/FIT/HUT 2002 23 Coordinate change (Rotation) . 110001 ⎟⎟ ⎟⎟ ⎟ ⎠ ⎞ ⎜⎜ ⎜⎜ ⎜ ⎝ ⎛ ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ = ⎟⎟ ⎟⎟ ⎟ ⎠ ⎞ ⎜⎜ ⎜⎜ ⎜ ⎝ ⎛ c b a z y x c (φx, φy, φz) a b (0,0,0) Change from (a,b,c,φ) coordinates to (x,y,z,0) coordinates: y x z θ (c) SE/FIT/HUT 2002 24 Composition of coordinate change z φ x y M1 changes from coordinate frame (x,y,z,θ) to (x’,y’,z’,θ’). M2 changes from coordinate frame (x’,y’,z’,θ’) to (x’’,y’’,z’’,θ’’). Change from coordinate frame (x,y,z,θ) to (x’’,y’’,z’’,θ’’): ? z’ φ’ x’ y’ z’’ φ’’ x’’ y’’ M1 M2 5(c) SE/FIT/HUT 2002 25 Object vs. coordinate transformations Translate and then rotate object: Translate and then rotate coordinate frame: z φ x y z φ x y z φ x y z φ x y z φ x y z’ φ’ x’ y’ z φ x y z’’ φ’’ x’ ’ y’’ (c) SE/FIT/HUT 2002 26 Object vs. coordinate transformations (2) Translate and then rotate object: Rotate and then translate coordinate frame: z φ x y z φ x y z φ x y z φ x y z φ x y z φ x y z’’ φ’’ x’ ’ y’’ z’ φ’ x’ y’ (c) SE/FIT/HUT 2002 27 Order of transformations Let Mi be the transformation matrix for transformation Ti. Sequence of object (point) transformations, T1, T2, T3. Transformation matrix = M3 x M2 x M1. Sequence of coordinate system transformations, T1, T2, T3. Transformation matrix = M1 x M2 x M3. Note: OpenGL, OpenInventor use coordinate system transformations. (c) SE/FIT/HUT 2002 28 Hệ tọa độ thực (WCS-World Coordinate System) „ Là hệ tọa độ của đối tượng được các chương trình ứng dụng sử dụng để mô tả tọa độ của các đối tượng trong thế giới thực. „ Đơn vị trong hệ thống tọa độ phụ thuộc vào không gian và kích thước của đối tượng được mô tả, có thể từ A0, nm, mm ... đến m, km ... (c) SE/FIT/HUT 2002 29 Hệ tọa độ thiết bị (DCS-Device Coordinate System) „ Là hệ thống tọa độ của thiết bị nơi hiển thị hình ảnh và không gian của đối tượng mà ứng dụng mô tả. ThiÕt bÞ hiÓn thÞ subselect.me Vïng täa ®é thiÕt bÞ VGA=640x480 (c) SE/FIT/HUT 2002 30 Hệ tọa độ chuẩn (NCS - Normalized Coordinate System) „ Giải quyết vấn đề khi ứng dụng chạy trên các thiết bị khác nhau „ Có kích thước 1x1 Wcs chuyÓn ®æi 1 NCS Dcs chuyÓn ®æi 2 6(c) SE/FIT/HUT 2002 31 Display Co-ordinates „ The integer, (x, y) screen co-ordinates are far too restrictive to be used to describe physical objects and scenes, because: „ objects and scenes would need to be remodelled for every new view, or if the device resolution is changed „ The range of coordinate values (e.g: 640x480, 1024x768 pixels) is inappropriate for many scenes (c) SE/FIT/HUT 2002 32 MODELLING Co-ordinates „ More logical to use dimensions which are appropriate to the object. e.g. „ metres for buildings, „ millimetres for assembly parts, „ nanometres or microns for molecules, cells, and atoms „ Objects are described with respect to their actual physical size in the real world, „ These measurements are then mapped onto screen co-ordinates before displaying (c) SE/FIT/HUT 2002 33 Basic Viewing Transform „ Apply transform to convert from Modelling co-ordinates to Screen Coordinates „ We can scale dimensions to change the resulting view „ We can even achieve a zooming in and out effect without changing the model by scaling dimensions proportionally „ Vấn đề: „ How much of the model should be drawn? „ Where should it appear on the display? „ How do we convert Real-world co-ordinates into screen co- ordinates? (c) SE/FIT/HUT 2002 34 2-Dimensional Views „ A 2-dimensional view consists of two rectangles: „ A Window given in real world co-ordinates, defining the portion of model (scene) to be drawn „ A Viewport given in screen co-ordinates, defining the portion of the screen which will be used to display the contents of the window (wxmin,wymin) (wxmax,wymax) (vxmin,vymin) (vxmax,vymax) (wx,wy) (vx,vy) (c) SE/FIT/HUT 2002 35 Phép chuyển đổi (c) SE/FIT/HUT 2002 36 Phép biến đổi theo ma trận „ Ma trận chuyển vị theo Window „ Ma trận biến đổi tỉ lệ „ Ma trận chuyển vị theo tọa độ viewport ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ −− = 1 010 001 1 YwXw T ][ ⎥⎥ ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎢⎢ ⎣ ⎡ − −= 100 0 minmax minmax0 00 Xwmin-Xwmax Xvmin-Xvmax ]1[ YwYw YvYvS ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ = 1 010 001 ]2[ YyXv T 7(c) SE/FIT/HUT 2002 37 Ma trận biến đổi tổng hợp của phép chuyển đổi tọa độ ⎥⎥ ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎢⎢ ⎣ ⎡ − −−− − −= = 1 minmax minmaxminmin Xwmin-Xwmax Xvmin-Xvmaxminmin 0 minmax minmax0 00 Xwmin-Xwmax Xvmin-Xvmax ][ ]2[]1[]1[][ YwYw YvYvYwYvXwXv YwYw YvYvT TxSxTT (c) SE/FIT/HUT 2002 38 „ Ánh xạ cửa sổ trên tới màn hình 640x480 viewport -0.4 -0.2 0.3 0.4 480 640 (c) SE/FIT/HUT 2002 39 Bài tập Wx=-.2 Wy=.3 Wxmax=0 Wxmin=-0.4 Wymax=0.4 Wymin=0 Vx= (-.2-(-0.4))*(640-0) + 0 = 320 0-(-0.4) Vy= (.3-0)*(0-480) + 480 = 120 0-(-0.4) Vxmax=640 Vxmin=-0.4 Vymax=0 Vymin=480 320 120

Các file đính kèm theo tài liệu này:

  • pdfgiao_trinh_do_hoa_4__4982.pdf
Tài liệu liên quan