Giáo trình đồ họa - Lesson 4 pps

14 303 0
Giáo trình đồ họa - Lesson 4 pps

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

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 đổitạo góc nhìn - Viewing transformations  placing virtual camera in the world  transformation from world coordinates to camera coordinates  Biến đổitạoHoạtcả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épbiến đổitọa độ điểm đặctrưng của đốitượng thành tậptương ứng các điểmmới để tạo ra các hiệu ứng cho toàn đốitượng.  Vídụ: phép biến đổitọa độ vớichỉ 2 điểm đầucuốicủa đoạn thẳng tạo thành 2 điểmmới mà khi nối chúng vớinhautạothành đoạnthẳng mới.  Các điểmnằmtrênđoạnthẳng sẽ có kếtquả là điểmnằmtrên đoạnthẳng mớivớ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 (P x ,P y ) into new values which specify point Q (Q x ,Q y )  This can be expressed using some function T, that maps co-ordinate pairs into co-ordinate pairs:  T(P x ,P y ) = (Q x ,Q y )  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 đổihìnhhọchaichiều  Phương pháp biểudiễn đốitượng P = [ x y ]  Phép biến đổivị 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 p M p W 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ấtbiến  Phép biến đổitỉ lệ - Scaling  A scaling changes the size of an object with two scale factors, S x and S y  Phép biếndạ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 =+= ⎥ ⎦ ⎤ ⎢ ⎣ ⎡ = x z 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ếthợ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 đổiphứctạp đềucó thể tạothànhtừ các phép biến đổicơ sở như:  Dịch chuyển - Translation  Tỉ lệ - Scaling  Quay- Rotation  Biếndạ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) (c 1 ,c 2 ) (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ểudiễnmở rộng thông qua tọa độ đồng nhấtcủa các vector vị trí  Với ứng dụng của phép chiếuhìnhhọcmàởđótọa độ điểm đượcmôtả dướima trận[ x* y* h]  với x = x*/h, y = y*/h, z = z*/h và h là mộtsố thựctuỳ ý (c) SE/FIT/HUT 2002 24 Ưu điểmcủaHệ tọa độ đồng nhất Homogeneous Transform  Ðưaracáinhìnhợpnhấtcủa các phép biến đổidưới phép nhân ma trận, hỗ trợ cho việcxử lý bằng cả phầncứng và phầnmềm  Kếthợp các các phép biến đổitạothànhma trận tích đơngiản duy nhất. Tránh nhầmlẫnvề thứ tự của các phép nhân khi sử dụng.  Order matters: AB is generally not the same as BA  Chophépkếthợpvớicả các phép biến đổi đặcbiệt không tuyến tính khác(non-affine) như:  Phép chiếuphốicả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 đổivớitọa độ đồng nhất  Ma trậnbiế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 ++= ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ = (t x , t y , t z ) (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 đổitổ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 đổihìnhhọc3 chiều  Biểudiễ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ậnbiế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ụctoạđộ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = 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ụctoạđộ • Quay quanh trụcx • Quay quanh trụcz ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ − = 1000 00 00 0001 φφ φφ cossin sincos ][Tx ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ − = 1000 0100 00cossin 00sincos ][ ϕϕ ϕϕ Tz (c) SE/FIT/HUT 2002 8 Quay quanh trụcy ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ − = 1000 0cos0sin 0010 0sin0cos ][ θθ θθ Ty (c) SE/FIT/HUT 2002 9 Phép biếndạng (secondary translation) ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = 1000 01 01 01 11 ig fd cb zyxzyx ][]'''[ ]1[zfycxizybxgzydx ++++++= (c) SE/FIT/HUT 2002 10 Phép lấy đốixứng (reflections-secondary translation) (c) SE/FIT/HUT 2002 11 Quay quanh mộttrụcbấtkỳ song song với các trụctọ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ộttrụcbấtkỳ 3 (c) SE/FIT/HUT 2002 13 Solution  ChuyểnP1 về gốctọa độ.  Quay quanh trụcy saochoP1P2 nằmtrênmặtphẳng (y, z)  Quay quanh trụcx saochoP1P2 trùngvớitrụcz.  Quay quanh trụcz saochoP1P3 nằmtrênmặtphẳ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ểnP1 về gốctọ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ụcy  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 P 3 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ụcz  [P ''' 3 ]= [P 3 ][T(-x1,-y1,-z1 ][T(φ-90)][T(ϕ)]  Với góc quay dương ψ trên trụcz  cos ψ = y 3 ''' /M; sin ψ = x 3 ''' /M;  Ma trậntổng hợpcủa các phép biến đổi [ T ] có dạng sau đáp ứng toàn bộ quá trình biến đổiquay đốitượng quanh mộttrụcbấtkỳ.  [ T ] = [T(-x1,-y1,-z1)][T(φ-90)][T(ϕ)][T(ψ)] y y''' 3 P''' 3 ψ M x''' 3 P''' 2 P''' 1 x z (c) SE/FIT/HUT 2002 18  Kếtquả sau biến đổicầnphải đưavề 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)] [...]... Xv min− Xwmin Xvmax- Xvmin Yv min− Ywmin Yv max− Yv min 1⎥ ⎢ Ywmax− Ywmin ⎥ ⎣ Xwmax- Xwmin ⎦ -0 .4 Ánh xạ cửa sổ trên tới màn hình 640 x480 viewport -0 .2 48 0 640 37 (c) SE/FIT/HUT 2002 (c) SE/FIT/HUT 2002 38 Bài tập Wx =-. 2 Wy=.3 Wxmax=0 Wxmin =-0 .4 Wymax=0 .4 Wymin=0 Vx= (-. 2-( -0 .4) )*( 64 0-0 ) + 0 = 320 0-( -0 .4) Vy= (. 3-0 )*( 0 -4 80) + 48 0 = 120 0-( -0 .4) Vxmax= 640 Vxmin =-0 .4 Vymax=0 Vymin =48 0 320 120 (c) SE/FIT/HUT... Display Co-ordinates MODELLING Co-ordinates The integer, (x, y) screen co-ordinates are far too restrictive to be used to describe physical objects and scenes, because: More logical to use dimensions which are appropriate to the object e.g 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: 640 x480, 1024x768 pixels)... How do we convert Real-world co-ordinates into screen coordinates? (c) SE/FIT/HUT 2002 metres for buildings, millimetres for assembly parts, nanometres or microns for molecules, cells, and atoms 35 0 0⎤ ⎡1 [T 2] = ⎢ 0 1 0⎥ ⎢ ⎥ ⎢ ⎣ Xv Yy 1 ⎥ ⎦ (c) SE/FIT/HUT 2002 36 6 Ma trận biến đổi tổng hợp của phép chuyển đổi tọa độ 0 .4 0.3 [T ] = [T1]x[S1]x[T 2] ⎡ ⎤ Xvmax- Xvmin 0 0⎥ ⎢ Xwmax- Xwmin ⎢ ⎥ Yv max− Yv... SE/FIT/HUT 2002 34 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ệ 0 0⎤ ⎡ 1 [T 1] = ⎢ 0 1 0⎥ ⎢ ⎥ ⎢− Xw − Yw 1⎥ ⎣ ⎦ ⎡ Xvmax- Xvmin ⎤ 0 0⎥ ⎢ Xwmax- Xwmin ⎢ Yv max− Yv min ⎥ [S1] = ⎢ 0 0⎥ Yw max− Yw min ⎥ ⎢ 0 0 1⎥ ⎢ ⎢ ⎥ ⎣ ⎦ Ma trận chuyển vị theo tọa độ viewport (c) SE/FIT/HUT 2002 32 (c) SE/FIT/HUT 2002 2-Dimensional Views Apply transform to convert from Modelling co-ordinates... physical size in the real world, These measurements are then mapped onto screen co-ordinates before displaying 31 Basic Viewing Transform 33 Phép chuyển đổi 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... thiết bị 28 (c) SE/FIT/HUT 2002 Hệ tọa độ chuẩn (DCS-Device Coordinate System) (NCS - Normalized 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ả 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 subselect.me NCS Wcs Vïng täa ®é thiÕt bÞ VGA= 640 x480 chuyÓn ®æi 2 Dcs chuyÓn ®æi 1 ThiÕt bÞ hiÓn thÞ (c)... 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’’,θ’’): ? 23 (c) SE/FIT/HUT 2002 24 4 Object vs coordinate transformations Object vs coordinate transformations (2) Translate and then rotate object: Translate and then rotate object: y y y φ φ φ x x z z φ z x φ z y φ’ x z’ x’ φ x x z z... z’’ (c) SE/FIT/HUT 2002 x’’ x y’’ y’y φ x z y φ z z’ φ’ 25 x x’’ φ’’ x’ φ z z ’’ x 26 (c) SE/FIT/HUT 2002 Hệ tọa độ thực (WCS-World Coordinate System) Order of transformations Let Mi be the transformation matrix for transformation Ti 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 . 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) )*( 64 0-0 ) + 0 = 320 0-( -0 .4) Vy= (. 3-0 )*( 0 -4 80) + 48 0 = 120 0-( -0 .4) Vxmax= 640 Vxmin =-0 .4 Vymax=0 Vymin =48 0 320 120 . 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( -9 0)]x[T(-x1,-y1,-z1)] 4 (c) SE/FIT/HUT 2002 19 Hệ toạ độ Coordinate Frame  Coordinate. 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,

Ngày đăng: 12/08/2014, 09:22

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan