intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

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

Chia sẻ: Nguyen Nhi | Ngày: | Loại File: PDF | Số trang:0

76
lượt xem
9
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Các phép biến đổi Đồ hoạ 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

Chủ đề:
Lưu

Nội dung Text: Giáo trình đồ họa - Lesson 4

  1. Khoa CNTT - DDHBK Hà nội hunglt@it-hut.edu.vn 8682595 Bài 4 Các phép biến đổi Đồ hoạ Affine Transformations Mô hình hoá - Modelling object A scene trong đồ họa: chứa các thực 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 thể đối tượng hay hệ thống Scene Modeling Computer graphics ~ quan tâm đến mô Đặt các đối tượng trong cảnh tại các tả hình học của các đối tượng nhằm vị trí khác nhau, thay đổi tỉ lệ và I KHái niệm cơ bản cung cấp phương pháp biểu diễn số cho biến đổi các hình trên cơ sở về kích thước và các Le Tan Hung II Các phép biến đổi thuộc tính có liên quan đến tiến trình tô Email: hunglt@it-hut.edu.vn trát III Hệ tọa độ đồng nhấ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 with several instances of the object 1 2 (c) SE/FIT/HUT 2002 (c) SE/FIT/HUT 2002 Ví dụ Phép biến đổi - Transformations At each frame of the animation, the Trong kỹ thuật đồ hoạ 3 bước: modeling, rendering, displaying object is transformed, in this case by a Với Modeling: rotation. It could also be transformed world modeling viewing by changing its size (scaling), or its coordinate Modeling coordinate (eye coordinate) Viewing coordinate shape (deforming), or its location transformation transformation (translation). Transformation: là phép ánh xạ tọa độ điểm hay vector thành tọa độ hay vector khác Further animation effects can be Biến đổi mô hình hoá - Modeling transformations achieved by not changing the object, build complex models by positioning simple components but the way it is viewed (i.e. the Biến đổi tạo góc nhìn - Viewing transformations window to viewport transformation) at placing virtual camera in the world each frame (e.g. by zooming). transformation from world coordinates to camera coordinates Biến đổi tạo Hoạt cảnh - Animation vary transformations over time to create motion 4 (c) SE/FIT/HUT 2002 (c) SE/FIT/HUT 2002 Viewing Transformations - Modeling 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 world CAMERA Mô tả hình học của các đối tượng OBJECT 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 5 6 (c) SE/FIT/HUT 2002 (c) SE/FIT/HUT 2002 1
  2. Khoa CNTT - DDHBK Hà nội hunglt@it-hut.edu.vn 8682595 Phép biến đổi Affine Affine Transformations? Phân loại - Transformations Example: OBJECT TRANSFORMATION Phép biến đổi Affine là phép biến đổi tọa độ điểm đặc trưng Có 2 cách nhìn trên phép biến đổi Object Transformation: thay đổi tọa của đối tượng thành tập tương ứng các điểm mới để tạo ra các độ của các điểm theo một số các hiệu ứng cho toàn đối tượng. .4, 2 quy luật mà không ảnh hưởng đến Ví dụ: phép biến đổi tọa độ với chỉ 2 điểm đầu cuối của đoạn hệ tọa độ gốc. 1,1 thẳng tạo thành 2 điểm mới mà khi nối chúng với nhau tạo thành Coordinate Transformation sinh ra hệ tọa độ khác và biểu diễn tất các đoạn thẳng mới. các đểm trên hệ tọa độ mới đó Example: COORDINATE TRANSFORMATION Các điểm nằm trên đoạn thẳng sẽ có kết quả là điểm nằm trên 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 đoạn thẳng mới với cùng phép biến đổi thông qua phép nội suy. (1,1) (1,1) 7 (c) SE/FIT/HUT 2002 (c) SE/FIT/HUT 2002 Modeling Transformations 2D Object Transformations A 2D object transformation alters each point P into a Transform objects/points Transform coordinate system 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 9 (c) SE/FIT/HUT 2002 (c) SE/FIT/HUT 2002 Matrix Representation Các phép biến đổi hình học hai chiều If affine transformation T maps P onto Q, then Q is related to P as Phương pháp biểu diễn đối tượng P = [ x y ] follows: Qx = aPx + bPx + t x ⎡a b ⎤ Phép biến đổi vị trí điểm T =⎢ ⎥ Q y = cPy + dPy + t y ⎣c d ⎦ Thực thi phép biến đổi đúng trên 1 điểm ảnh sẽ đúng trên toàn bộ đối where a, b, c, d, tx and ty are all constants, and ad = bc tượng This gives rise to the following matrix representation: [ ] [X ]* [T ] = [x y ]* ⎡ b⎤ a = [(ax + cy ) (bx + dy )] = x ' y ' ⎢ d⎥ ⎛Qx ⎞ ⎛a ⎞ ⎛ Px ⎞ ⎛ t x ⎞ b ⎣c ⎦ ⎜ ⎟=⎜ ⎟⎜ P ⎟ + ⎜ t ⎟ ⎟ ⎜c ⎟⎜ i.e. ⎜Q ⎟⎜ ⎟ ⎠⎝ ⎠⎝ y ⎠ ⎝ y y ⎝y ⎠ d Q = MP + Tr pW pM x z 12 (c) SE/FIT/HUT 2002 (c) SE/FIT/HUT 2002 2
  3. Khoa CNTT - DDHBK Hà nội hunglt@it-hut.edu.vn 8682595 y Phép quay- Rotation Phép biến đổi ⎡1 0 ⎤ x = ρ cos α, y = ρ sin α ; Phép bất biến T =⎢ ⎥ y ⎣0 1 ⎦ z x’ = ρ cos (θ +α ), y’ = ρ sin (θ +α ) x ; Phép biến đổi tỉ lệ - Scaling ( x’, y’ ) x’ = ρ ( cosθ cosα - sinθ sinα ) A scaling changes the size of an object with two scale factors, Sx and Sy = x cosθ - y sinθ ⎡ a 0⎤ [X ]* [T ] = [x y ]* ⎢ ⎥ = [(ax ) y ] = [x' y '] ρ y’ = ρ ( sinθ cosα + cosθ sinα ) ⎣0 1⎦ ( x, y ) = x sinθ + y cosθ Phép biến dạng ρ [x' y']= [xcosθ - ysinθ xsinθ + θ A shearing shears an object in a particular direction, (in 2D, it’s either in the x ycosθ] α x or in the y direction ⎡ cos θ sin θ ⎤ ⎡1 b ⎤ [T ] = ⎢ [X ]* [T ] = [x y ]* ⎢ ⎥ = [bx + dy ] = [x' y '] cos θ ⎥ ⎣ − sin θ ⎦ ⎣0 1 ⎦ 13 14 (c) SE/FIT/HUT 2002 (c) SE/FIT/HUT 2002 Thuộc tính cơ bản của phép biến đổi Thuộc tính Affine Transformations Preservation of lines: Preservation of parallelism They preserve lines, so the image of a straight line is another straight line. Preservation of parallelism guarantees that parallelograms will transform This vastly simplifies drawing transformed line segments. into parallelograms We need only compute the image of the two endpoints of the original line Preservation of proportional distances and then draw a straight line between them Preservation of proportional distances means that mid-points of lines Preservation of collinearity guarantees that polygons will transform into remain mid-points polygons Affine transformations change volume by | Det(M) |; Affine transformations map lines to lines; 15 (c) SE/FIT/HUT 2002 (c) SE/FIT/HUT 2002 Affine transformations preserve Kết hợp các phép biến đổi affine combinations Composition of Affine Transforms Any affine transformation can be It is rare that we want to perform just one elementary decomposed into elementary transformation. transformations. Usually an application requires that we build a complex Mọi phép biến đổi phức tạp đều có transformation out of several elementary ones thể tạo thành từ các phép biến đổi cơ e.g. translate an object, rotate it, and scale it, all in one move sở như: These individual transformations combine into one overall Dịch chuyển - Translation transformation Tỉ lệ - Scaling This is called the composition of transformations. Quay- Rotation The composition of two or more affine transformations is also an affine transformation Biến dạng - Shearing (c) SE/FIT/HUT 2002 (c) SE/FIT/HUT 2002 3
  4. Khoa CNTT - DDHBK Hà nội hunglt@it-hut.edu.vn 8682595 Điểm gốc - Pivotal points Thuộc tính Cho phép quay và tỉ lệ Rotation and Scaling T 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) Tác động lên tập các điểm đặc trưng của đối tượng tạo thành Rotate all points about the origin by phép biến đổi cho đối tượng Translate all points back through (c1,c2) 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 (c1,c2) (0,0) 19 (c) SE/FIT/HUT 2002 (c) SE/FIT/HUT 2002 Hệ toạ độ đồng nhất Pivotal points Often we wish to rotate or scale with respect to some pivotal Vấn đề gặp phải: point, not the origin An affine transformation is composed of a linear transformation Most significantly, we often wish to rotate or scale an object followed by a translation about its centre, or midpoint Unfortunately, the translation portion is not a matrix In this way, the object’s location does not change multiplication but must instead be added as an extra term, or vector To do this, we relate the rotation or scaling about the pivotal point V, to an elementary rotation or scaling about the origin What we need is a “trick”, so that translations can be represented in matrix multiplication form We first translate all points so that V coincides with the origin We then rotate or about the origin This then means that they can be easily composed with other transformations, by simply multiplying the matrices together then all points are translated back, so that V is restored to its original location (c) SE/FIT/HUT 2002 (c) SE/FIT/HUT 2002 Tọa độ đồng nhất Ưu điểm của Hệ tọa độ đồng nhất Homogeneous Transform 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 x' = ax + by + n nhân ma trận, hỗ trợ cho việc xử lý bằng cả phần cứng và y' = bx + dy + m phần mềm Phương pháp biểu diễn mở rộng thông qua tọa độ đồng 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 nhất của các vector vị trí 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 Với ứng dụng của phép chiếu hình học mà ở đó tọa độ Cho phép kết hợp với cả các phép biến đổi đặc biệt không điểm được mô tả dưới ma trận [ x* y* h] tuyến tính khác(non-affine) như: với x = x*/h, y = y*/h, z = z*/h và h là một số thực tuỳ ý Phép chiếu phối cảnh - Perspective projections! Uốn - Bends, Vuốt tapers v.v.v (c) SE IT U 2002 /F /H T 23 24 (c) SE/FIT/HUT 2002 4
  5. Khoa CNTT - DDHBK Hà nội hunglt@it-hut.edu.vn 8682595 Phép biến đổi với tọa độ đồng nhất Phép tỉ lệ ⎡ a b 0⎤ Ma trận biến đổi đồng nhất ⎡ S1 0 0⎤ [T ] = ⎢ c d 0⎥ y 1]⎢ 0 S 2 0⎥ = [ x.S1 y.S 2 1] ⎢ ⎥ y ' 1] = [ x [ x' ⎢ ⎥ ⎢m n 1⎥ ⎣ ⎦ Phép tịnh tiến ⎢ 0 0 1⎥ ⎣ ⎦ ⎡ 1 0 0⎤ y 1]⎢ 0 1 0⎥ = [ x + m y ' 1] = [ x y + n 1] [ x' ⎢ ⎥ ⎢m n 1⎥ ⎣ ⎦ (tx, ty, tz) 25 26 (c) SE/FIT/HUT 2002 (c) SE/FIT/HUT 2002 Phép quay Phép biến đổi tổng hợp ⎡ cos φ sin φ 0⎤ 1] ⎢ − sin φ 0⎥ cos φ y ' 1] = [ x [ x' y y ⎢ ⎥ ⎢0 1⎥ 0 ⎣ ⎦ ( x’, y’ ) = [ x. cos φ − y. sin φ x. sin φ + y. cos φ 1] ρ ( x, y ) ρ θ α x 27 28 (c) SE/FIT/HUT 2002 (c) SE/FIT/HUT 2002 Coordinate Transforms Coordinate Transforms x u u’ (1,1) (1,1) v v’ Object defined in Local y Coordinate System Object after transformation in Global Coordinate System (c) SE/FIT/HUT 2002 30 (c) SE/FIT/HUT 2002 5
  6. Khoa CNTT - DDHBK Hà nội hunglt@it-hut.edu.vn 8682595 Identity as a Coordinate Transform Translation x x x ⎡1 0 tx ⎤ u’ x u u u’ Q = ⎢0 1 ty ⎥ P ⎢ ⎥ (1+tx,1+ty) (1,1) (1,1) ⎢0 0 1 ⎥ (1,1) ⎣ ⎦ v’ v v y y y v’ y ⎡1 0 tx ⎤ ⎡1⎤ ⎡1 + tx ⎤ ⎡1 0 tx ⎤ ⎡0⎤ ⎡tx ⎤ ⎡1 0 tx ⎤ ⎡0⎤ ⎡ tx ⎤ ⎡1 0 0 ⎤ ⎢0 1 ty ⎥ ⎢0⎥ = ⎢ty ⎥ ⎢0 1 ty ⎥ ⎢0⎥ = ⎢ ty ⎥ ⎢0 1 ty ⎥ ⎢1⎥ = ⎢1 + ty ⎥ Q = ⎢0 1 0 ⎥ P ⎢ ⎥⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥ ⎢ ⎣0 0 1 ⎥ ⎢1 ⎥ ⎢ 1 ⎥ ⎢ ⎣0 0 1 ⎥ ⎢1⎥ ⎢ 1 ⎥ ⎢ 0 0 1 ⎥ ⎢1 ⎥ ⎢ 1 ⎥ ⎢ ⎥ ⎦⎣ ⎦ ⎣ ⎦ ⎦⎣ ⎦ ⎣ ⎦ ⎣ ⎦⎣ ⎦ ⎣ ⎦ ⎢0 0 1 ⎥ ⎣ ⎦ ⎡tx ⎤ O = ⎢ty ⎥ u (0, 1, 0) origin v (1, 0, 0) ⎢⎥ ⎢1⎥ 31 32 (c) SE/FIT/HUT 2002 (c) SE/FIT/HUT 2002 ⎣⎦ ⎡0 ⎤ Rotation Scaling O = ⎢0 ⎥ ⎢⎥ u x ⎢1 ⎥ x ⎣⎦ x u u u’ x (sx*1,sy*1) (1,1) (1,1) v’ v y v y y y ⎡cosθ ⎤ ⎡− sin θ ⎤ v ⎡cosθ − sin θ 0⎤ ⎡ sx 0 0⎤ ⎡0⎤ ⎡0 ⎤ ⎡ sx ⎤ v = ⎢ sin θ ⎥ u = ⎢ cosθ ⎥ Q = ⎢ sin θ 0⎥ P Q = ⎢ 0 sy 0⎥ P u = ⎢ sy ⎥ cosθ O = ⎢0 ⎥ v=⎢0⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢⎥ ⎢⎥ ⎢⎥ ⎢1⎥ ⎢1⎥ ⎢0 ⎥ ⎣ ⎦ ⎣ ⎦ 0 1⎦ ⎢ 0 0 1⎥ ⎢1⎥ ⎣ ⎢1⎥ ⎢1⎥ ⎣ ⎦ ⎣⎦ ⎣⎦ ⎣⎦ 33 34 (c) SE/FIT/HUT 2002 (c) SE/FIT/HUT 2002 Composite Transformations Modeling Transformations x x ⎡ x1 (1 − cosθ ) + y1 sin θ ⎤ To make full use of the computational optimisation made u ⎢ y (1 − cos θ ) − y sin θ ⎥ O= ⎢1 ⎥ possible by composite transforms, we only want to apply the 1 ⎢ ⎥ 1 ⎣ ⎦ u’ (1,1) transformations to points at the very end v i.e. the transformation operation (multiplying point p by ⎡cosθ + x1 (1 − cosθ ) + y1 sinθ ⎤ ’ transform matrix is the very last thing we do in the modelling ⎢sinθ + y (1 − cosθ ) − y sinθ ⎥ v y v= y ⎢ ⎥ 1 1 phase) ⎢ ⎥ 1 ⎣ ⎦ ⎛ cosθ − sin θ x1 (1 − cosθ ) + y1 sin θ ⎞ ⎜ ⎟ Specify ⎡− sinθ + x1 (1 − cosθ ) + y1 sinθ ⎤ M = ⎜ sin θ cosθ y1 (1 − cosθ ) − x1 sin θ ⎟ u= Specify points Send to ⎢ cosθ + y (1− cosθ ) − y sinθ ⎥ ⎜0 ⎟ Transformations ⎢ ⎥ 0 1 1 1 ⎝ ⎠ in local coords Pipeline ⎢ ⎥ 1 ⎣ ⎦ (composite if necessary) 35 36 (c) SE/FIT/HUT 2002 (c) SE/FIT/HUT 2002 6
  7. Khoa CNTT - DDHBK Hà nội hunglt@it-hut.edu.vn 8682595 + + + + + + transform transform transform This of course shouldn’t Obviously we want = mean all objects need to something more share the same versatile = transformations 37 38 (c) SE/FIT/HUT 2002 (c) SE/FIT/HUT 2002 7
  8. Ma trận biến đổi 3 chiều Bài 4B: 3D Matrix Transformations Phép biến đổi trong không gian 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 1 (c) SE/FIT/HUT 2002 2 (c) SE/FIT/HUT 2002 Các phép biến đổi hình học 3 chiều Phép tịnh tiến Biểu diễn điểm trong không gian 3 chiều ⎡1 0 0 0⎤ • [ x* y* z* h ] = [ x y z 1 ]. [ T ] ⎢0 1 0 0⎥ • [x' y' z' 1 ]= [ x*/h y*/h z*/h 1 ][ T ] [T (dx, dy, dz )] = ⎢ ⎥ ⎢0 0 1 0⎥ Ma trận biến đổi ⎡a b c p ⎤ ⎢ ⎥ ⎢d e f q ⎥ 1⎦ ⎣dx dy dz [T ] = ⎢ ⎥ ⎢g i j r ⎥ [X'] = [ X ] . [ T(dx,dy,dz) ] ⎢ ⎥ [ x' y' z' 1 ] = ⎣l m n s⎦ [ x y z 1 ].[ T(dx,dy,dz) ] = [ x+dx y+dy z+dz 1 ] 3 4 (c) SE/FIT/HUT 2002 (c) SE/FIT/HUT 2002 Phép tỉ lệ Rotation ⎡ s1 0 0 0⎤ In 2D, the only rotation possible was about the origin. ⎢ 0 s2 0 0⎥ In 3D, there are 3 possible rotations, one about each of the x, z 1] ⎢ ⎥ y ' z ' 1] = [ x [ x' y y and z axes ⎢ 0 0 s3 0⎥ ⎢ ⎥ Positive rotations are anti-clockwise, negative rotations are ⎣0 0 0 1⎦ clockwise, when looking down a positive axis towards the = [x .s 1 y .s 2 z .s 3 1] origin y y y • s1, s2, s3 là các hệ số tỉ lệ tương ứng trên các trục toạ độ x x x z z z 5 6 (c) SE/FIT/HUT 2002 (c) SE/FIT/HUT 2002 1
  9. Phép quay 3 chiều Quay quanh trục y ⎡cos θ 0 − sin θ 0⎤ Quay quanh các trục toạ độ ⎢0 0⎥ 1 0 • Quay quanh trục x [Ty ] = ⎢ ⎥ ⎡1 0⎤ 0 0 ⎢ sin θ cos θ 0⎥ 0 ⎢0 cos φ 0⎥ sin φ ⎢ ⎥ [Tx ] = ⎢ ⎥ ⎣0 0 0 1⎦ ⎢0 − sin φ cos φ 0⎥ ⎢ ⎥ ⎣0 1⎦ 0 0 • Quay quanh trục z ⎡ cos ϕ sin ϕ 0 0⎤ ⎢ − sin ϕ 0 0⎥ cos ϕ [Tz ] = ⎢ ⎥ ⎢0 1 0⎥ 0 ⎢ ⎥ ⎣0 0 0 1⎦ 7 8 (c) SE/FIT/HUT 2002 (c) SE/FIT/HUT 2002 Phép biến dạng Phép lấy đối xứng (secondary translation) (reflections-secondary translation) ⎡ 1 b c 0⎤ ⎢ d 1 f 0⎥ z 1] ⎢ ⎥ y ' z ' 1] = [ x [ x' y ⎢ g i 1 0⎥ ⎢ ⎥ ⎣ 0 0 0 1⎦ = [x + yd + gz bx + y + iz cx + fy + z 1] 9 10 (c) SE/FIT/HUT 2002 (c) SE/FIT/HUT 2002 Quay quanh một trục bất kỳ Quay quanh một trục bất kỳ song song với các trục tọa độ ⎡1 0⎤ 0 0 ⎡1 0⎤ 0 0 ⎢0 cos φ 0⎥ ⎢0 0⎥ sin φ 1 0 [T (φ )] = ⎢ ⎥ [ Tr ] = ⎢ ⎥ ⎢0 − sin φ 0⎥ cos φ ⎢0 0⎥ 0 1 ⎢ ⎥ ⎢ ⎥ , ⎣0 1⎦ ⎣0 1⎦ 0 0 y z , ⎡1 0⎤ 0 0 ⎡1 0 0⎤ 0 ⎢ ⎥ ⎢0 1 0⎥ φ φ 0 cos sin 0⎥ [Tth=⎢ 0 =⎢ ⎥ ] −1 [Tr ] ⎢0 0⎥ φ φ −sin cos ⎢0 0 0⎥ 1 ⎢ ⎥ ⎢ ⎥ φ φ φ φ ⎢0 y(1−cos)+zsin z(1−cos)−ysin 1⎥ ⎣ ⎦ ⎣0 − y − z 1⎦ 11 12 (c) SE/FIT/HUT 2002 (c) SE/FIT/HUT 2002 2
  10. Solution Bước 1: Chuyển P1 về gốc tọa độ ⎡1 0⎤ 0 0 Chuyển P1 về gốc tọa độ. ⎢0 0⎥ 1 0 ⎢ ⎥ Quay quanh trục y sao cho P1P2 nằm trên mặt phẳng (y, z) [T (− x1,− y1,− z1)] = ⎢0 0⎥ 0 1 Quay quanh trục x sao cho P1P2 trùng với trục z. ⎢ ⎥ ⎣− x1 − y1 − z1 1⎦ Quay quanh trục z sao cho P1P3 nằm trên mặt phẳng (y, z) y y P3 P3 Euler’s Theorem: Every rotation around the origin can be P2 P1 decomposed into a rotation around the x-axis followed by a P2 p P1 z z x rotation around the y-axis followed by a rotation around the x z-axis. 13 14 (c) SE/FIT/HUT 2002 (c) SE/FIT/HUT 2002 Bước 2: Quay quanh trục y Bước 3: Quay quanh trục x. cos( - 90 + φ) = sinφ = z'2/L = ( z2 - z1)/L cos ϕ = z''2/N, sin ϕ = y''2/N sin( - 90 + φ) = - cosφ = x'2/L = ( x2 - x1)/L y y Với N = | P''1P''2| là độ dài của đoạn P''1P''2 L = (z'2 ) (x'2 ) = (z2 − z1 ) (x2 − x1 ) 2 2 2 2 P''2 P3 N P''1 ϕ [P'''2] = [P''2][T(ϕ)] = [P'2][T(φ-90)][T(ϕ)] [ P''2 ] = [ P'2 ][ T(φ-90) ] x P'2(x'2,y'2,z'2) = [ 0 y2-y1 L ] = [P2 ][T(-x1,-y1,-z1 ][T(φ-90)][T(ϕ)] z P'1 Lφ = [ 0 0 |P1P2| 1 ] z(x'2,0,z'2)x 15 16 (c) SE/FIT/HUT 2002 (c) SE/FIT/HUT 2002 Bước 4: Quay quanh trục z 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 [P'''3]= [P3 ][T(-x1,-y1,-z1 ][T(φ-90)][T(ϕ)] ngược. Với góc quay dương ψ trên trục z [Tth]= [T(-x1,-y1,-z1)]x[T(φ-0)]x[T(ϕ)]x [T(ψ)]x[T(ψ)]x[T(ϕ)]x cos ψ = y3'''/M; sin ψ = x3'''/M; [T(φ-90)]x[T(-x1,-y1,-z1)] 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ỳ. y [ T ] = [T(-x1,-y1,-z1)][T(φ-90)][T(ϕ)][T(ψ)] y'''3 P'''3 ψ M x'''3 P'''2P'''1 x z 17 18 (c) SE/FIT/HUT 2002 (c) SE/FIT/HUT 2002 3
  11. Hệ toạ độ Coordinate Frame Orientation Right handed coordinate system: Left handed coordinate system: y j φ i k y y j j φ i i k φ x k z Coordinate frame is given by origin φ and three mutually orthogonal unit vectors, x z x z i, j, k. Mutually orthogonal (dot products): i•j = ?; i•k = ?; j•k = ?. Cross product: i x j = ? Cross product: i x j = ? Unit vectors (dot products): i•i = ?; j•j = ?; k•k = ?. 19 20 (c) SE/FIT/HUT 2002 (c) SE/FIT/HUT 2002 Coordinate change (Translation) Coordinate Transformations b y j i y φ k (φx, φy, φz) a x z (0,0,0) Transform (x, y, z, 0) coordinate frame to (i, j, k, φ) coordinate frame. c x z φx ⎤ ⎡i x jx kx Affine transformation matrix: ⎛ x⎞ ⎡ ⎤⎛ a ⎞ ⎢i φy ⎥ Change from (a,b,c,φ) coordinates to ⎜⎟ ⎢ ⎥⎜ b ⎟ jy ky ⎢y ⎥. ⎜ y⎟ ⎢ ⎥ ⎜ ⎟. (x,y,z,0) coordinates: φz ⎥ ⎢i z = jz kz ⎜ z⎟ ⎢ ⎥⎜ c ⎟ ⎢0 1⎥ 0 0 ⎣ ⎦ ⎜⎟ ⎢ ⎥⎜ ⎟ ⎜⎟ ⎜⎟ ⎝ 1 ⎠ ⎣0 0 0 1⎦ ⎝ 1 ⎠ Maps (i, j, k, φ) coordinates into (x, y, z, 0) coordinates! 21 22 (c) SE/FIT/HUT 2002 (c) SE/FIT/HUT 2002 Coordinate change (Rotation) Composition of coordinate change y’’ b y’ x y M2 y φ’’ θ z’’ M1 (φx, φy, φz) x’’ x’ φ’ a (0,0,0) c z’ φ z x z ⎛ x⎞ ⎡ ⎤⎛ a ⎞ Change from (a,b,c,φ) coordinates to ⎜⎟ ⎢ ⎥⎜ b ⎟ M1 changes from coordinate frame (x,y,z,θ) to (x’,y’,z’,θ’). ⎜ y⎟ ⎢ ⎥ ⎜ ⎟. (x,y,z,0) coordinates: = ⎜ z⎟ ⎢ ⎥⎜ c ⎟ M2 changes from coordinate frame (x’,y’,z’,θ’) to (x’’,y’’,z’’,θ’’). ⎜⎟ ⎜⎟ Change from coordinate frame (x,y,z,θ) to (x’’,y’’,z’’,θ’’): ? ⎜⎟ ⎢ ⎥⎜ ⎟ ⎝ 1 ⎠ ⎣0 0 0 1⎦ ⎝ 1 ⎠ 23 24 (c) SE/FIT/HUT 2002 (c) SE/FIT/HUT 2002 4
  12. Object vs. coordinate transformations Object vs. coordinate transformations (2) Translate and then rotate object: Translate and then rotate object: y y y y y y φ φ φ φ φ φ x x xz xz x x z z z z Translate and then rotate coordinate frame: Rotate and then translate coordinate frame: y’’ y y y’ y y’y y y y’’ x’’ φ’’ x’ φ φ x’’ φ φ φ’ z ’’ φ φ φ’’ x x φ’ z z x x x’ z z z’ x x z z z’ z’’ 25 26 (c) SE/FIT/HUT 2002 (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 Sequence of object (point) transformations, T1, T2, T3. dụng sử dụng để mô tả tọa độ Transformation matrix = M3 x M2 x M1. của các đối tượng trong thế giới thực. Sequence of coordinate system transformations, T1, T2, T3. Đơn vị trong hệ thống tọa độ phụ thuộc vào không gian và Transformation matrix = M1 x M2 x M3. kích thước của đối tượng được mô tả, có thể từ A0, nm, mm ... Note: OpenGL, OpenInventor use coordinate system transformations. đến m, km ... 27 28 (c) SE/FIT/HUT 2002 (c) SE/FIT/HUT 2002 Hệ tọa độ thiết bị 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 Giải quyết vấn đề khi ứng dụng chạy trên các thiết bị khác gian của đối tượng mà ứng dụng mô tả. nhau Có kích thước 1x1 subselect.me NCS Dcs Wcs chuyÓn ®æi 2 Vïng täa ®é thiÕt bÞ chuyÓn ®æi 1 VGA=640x480 ThiÕt bÞ hiÓn thÞ 29 30 (c) SE/FIT/HUT 2002 (c) SE/FIT/HUT 2002 5
  13. Display Co-ordinates MODELLING Co-ordinates The integer, (x, y) screen co-ordinates are far too restrictive to be More logical to use dimensions which are appropriate to the used to describe physical objects and scenes, because: object. e.g. objects and scenes would need to be remodelled for every new view, or if metres for buildings, the device resolution is changed millimetres for assembly parts, The range of coordinate values (e.g: 640x480, 1024x768 pixels) is nanometres or microns for molecules, cells, and atoms inappropriate for many scenes 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 31 32 (c) SE/FIT/HUT 2002 (c) SE/FIT/HUT 2002 Basic Viewing Transform 2-Dimensional Views Apply transform to convert from Modelling co-ordinates to A 2-dimensional view consists of two rectangles: Screen Coordinates A Window given in real world co-ordinates, defining the portion of model (scene) to be drawn We can scale dimensions to change the resulting view A Viewport given in screen co-ordinates, defining the portion of the We can even achieve a zooming in and out effect without screen which will be used to display the contents of the window changing the model by scaling dimensions proportionally (wxmax,wymax) (vxmax,vymax) Vấn đề: How much of the model should be drawn? Where should it appear on the display? (vx,vy) (wx,wy) How do we convert Real-world co-ordinates into screen co- ordinates? (vxmin,vymin) (wxmin,wymin) 33 34 (c) SE/FIT/HUT 2002 (c) SE/FIT/HUT 2002 Phép chuyển đổi Phép biến đổi theo ma trận Ma trận chuyển vị theo Window ⎡1 0⎤ 0 [T 1] = ⎢ 0 0⎥ 1 ⎢ ⎥ ⎢− Xw − Yw 1⎥ ⎣ ⎦ ⎡ Xvmax- Xvmin ⎤ 0 0⎥ ⎢ Xwmax- Xwmin ⎢ Yv max− Yv min ⎥ Ma trận biến đổi tỉ lệ [S1] = ⎢ 0⎥ 0 Yw max− Yw min ⎥ ⎢ 0 0 1⎥ ⎢ ⎢ ⎥ ⎣ ⎦ ⎡1 0 0⎤ [T 2] = ⎢ 0 1 0⎥ Ma trận chuyển vị theo tọa độ viewport ⎢ ⎥ ⎢ ⎣ Xv Yy 1 ⎥ ⎦ 35 36 (c) SE/FIT/HUT 2002 (c) SE/FIT/HUT 2002 6
  14. 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 -0.4 -0.2 ⎢ ⎥ Yv max− Yv min [T ] = ⎢ 0⎥ 0 Ywmax− Ywmin ⎢ ⎥ Ánh xạ cửa sổ trên tới màn ⎢ Xv min− Xwmin Xvmax- Xvmin Yv min− Ywmin Yv max− Yv min 1⎥ hình 640x480 viewport ⎢ Ywmax− Ywmin ⎥ ⎣ ⎦ 480 Xwmax- Xwmin 640 37 38 (c) SE/FIT/HUT 2002 (c) SE/FIT/HUT 2002 Bài tập Wx=-.2 Vxmax=640 Wy=.3 Vxmin=-0.4 Wxmax=0 Vymax=0 Wxmin=-0.4 Wymax=0.4 Vymin=480 Wymin=0 Vx= (-.2-(-0.4))*(640-0) + 0 = 320 320 0-(-0.4) Vy= (.3-0)*(0-480) + 480 = 120 0-(-0.4) 120 39 (c) SE/FIT/HUT 2002 7
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2