Khoa CNTT - DDHBK Hà nội hunglt@it-hut.edu.vn 8682595 Phép biến đổi - Transformations Bài Các phép biến đổi Đồ hoạ z Transformations z Trong kỹ thuật đồ hoạ bước: Mơ hình, Tơ trát Hiên thị (modeling, rendering, displaying) Với Modeling ( Mơ hình hóa) : modeling coordinate Modeling transformation world coordinate Viewing transformation viewing coordinate (eye coordinate) Le Tan Hung Email: hunglt@it-hut.edu.vn z Transformation: phép ánh xạ tọa độ điểm hay vector thành tọa độ hay vector khác Transformations - Modeling Phép biến đổi Transformations z – z build complex models by positioning simple components Biến đổi tạo góc nhìn - Viewing transformations – – z world Biến đổi mơ hình hố - Modeling transformations placing virtual camera in the world transformation from world coordinates to camera coordinates Biến Phép chiếu – Projection Transform Phép biến đổi Affine Affine Transformations? z Modeling Transformations Phép biến đổi Affine phép biến đổi tọa độ Transform objects/points điểm đặc trưng đối tượng thành tập tương ứng điểm để tạo hiệu ứng cho tồn đối tượng – Ví dụ: phép biến đổi tọa độ với điểm đầu cuối Transform coordinate system đoạn thẳng tạo thành điểm mà nối chúng với tạo thành đoạn thẳng z Các điểm nằm đoạn thẳng có kết điểm nằm đoạn thẳng với phép biến đổi thông qua phép nội suy Khoa CNTT - DDHBK Hà nội hunglt@it-hut.edu.vn 8682595 Biểu diễn Ma trận z z z Matrix Representation z Việc biến đối đối tượng làm thay đổi điểm P thành điểm Q theo thuật toán Việc biến đổi P sử dụng tọa độ P (Px,Py) ánh xạ thành tọa độ Q (Qx,Qy) Việc biến đổi biểu diễn thơng qua hàm T, hàm ánh xạ điểm: – – z T(Px,Py) = (Qx,Qy) or: T(P) = Q – – – Phép biến đổi đồ họa - affine transformation T ánh xạ tập P sang tập Q: – Qx = aPx + bPx + t x z Biểu diễn ma trận: i.e ⎛Qx ⎜ ⎜Q ⎝ y ⎞ ⎛a ⎟ = ⎜⎜ ⎟ ⎠ ⎝c b d ⎞ ⎛ Px ⎞ ⎛ t x ⎟+⎜ ⎟⎟ ⎜⎜ ⎟ ⎜ ⎠⎝ Py ⎠ ⎝ t y ⎞ ⎟ ⎟ ⎠ Q = MP + Tr Các phép biến đổi hình học hai chiều z z z Phương pháp biểu diễn đối tượng P = [ x Phép biến đổi vị trí điểm ⎡a b ⎤ Phép biến đổi y ] T =⎢ ⎥ ⎣c d ⎦ Thực thi phép biến đổi điểm ảnh toàn đối tượng a [X ]* [T ] = [x y ]* ⎡⎢ ⎣c [ b⎤ = [(ax + cy ) (bx + dy )] = x ' y ' d ⎥⎦ Phép bất biến z Phép biến đổi tỉ lệ - Scaling A scaling changes the size of an object with two scale factors, Sx and Sy z ] z z x z x ⎡ a 0⎤ y ]* ⎢ ⎥ = [(ax ) y ] = [x' y '] ⎣0 1⎦ b [X ]* [T ] = [x y ]* ⎡⎢ ⎤⎥ = [bx + dy ] = [x' y '] ⎣0 ⎦ [X ]* [T ] = [x pW pM ⎡1 ⎤ T =⎢ ⎥ ⎣0 ⎦ z y z y 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 Thuộc tính phép biến đổi Affine Transformations 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θ] z y ⎡ cos θ [T ] = ⎢ ⎣ − sin θ sin θ ⎤ cos θ ⎥⎦ Preservation of lines: – ( x’, y’ ) – ρ ( x, y ) – ρ θ 11 Q y = cPy + dPy + t y where a, b, c, d, tx and ty hệ số α x – 12 – 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; Khoa CNTT - DDHBK Hà nội hunglt@it-hut.edu.vn 8682595 Kết hợp phép biến đổi Composition of Affine Transforms Thuộc tính z – z Preservation of parallelism guarantees that parallelograms will transform into parallelograms z Preservation of proportional distances – z z Preservation of parallelism Preservation of proportional distances means that midpoints of lines remain mid-points Affine transformations change volume by | Det(M) |; 13 Any affine transformation can be decomposed into elementary transformations Mọi phép biến đổi phức tạp tạo thành từ phép biến đổi sở như: – Dịch chuyển - Translation – Tỉ lệ - Scaling – Quay- Rotation – Biến dạng - Shearing 14 Affine transformations preserve affine combinations z z z z T 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 – z Thuộc tính z z 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 15 Tác động lên tập điểm đặc trưng đối tượng tạo thành phép biến đổi cho đối tượng e.g translate an object, rotate it, and scale it, all in one move z 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 16 Điểm gốc - Pivotal points Pivotal points Cho phép quay tỉ lệ Rotation and Scaling z z z z z 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 z z z z Translate all points back through (c1,c2) 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 this, we relate the rotation or scaling about the pivotal point V, to an elementary rotation or scaling about the origin – (c1,c2) – – (0,0) 17 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 18 Khoa CNTT - DDHBK Hà nội hunglt@it-hut.edu.vn 8682595 z z z z z 19 Hệ toạ độ đồng Tọa độ đồng Homogeneous Transform 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 x' = ax + by + n y' = cx + dy + m Phương pháp biểu diễn mở rộng thông qua tọa độ đồng vector vị trí – – z z 20 Ưu điểm Hệ tọa độ đồng Homogeneous Transform z z z Phép biến đổi với tọa độ đồng Ðưa nhìn hợp phép biến đổi phép nhân ma trận, hỗ trợ cho việc xử lý phần cứng phần mềm Kết hợp các phép biến đổi tạo thành ma trận tích đơn giản Tránh nhầm lẫn thứ tự phép nhân sử dụng – Với ứng dụng phép chiếu hình học mà tọa độ điểm mô tả ma trận [ x* y* h] – với x = x*/h, y = y*/h, z = z*/h h số thực tuỳ ý z Ma trận biến đổi đồng z Phép tịnh tiến [ x' – y ' 1] = [ x Order matters: AB is generally not the same as BA Cho phép kết hợp với phép biến đổi đặc biệt khơng tuyến tính khác(non-affine) như: – ⎡ a b 0⎤ [T ] = ⎢⎢ c d 0⎥⎥ ⎣⎢m n 1⎥⎦ ⎡ 0⎤ y 1]⎢⎢ 0⎥⎥ = [ x + m ⎣⎢m n 1⎥⎦ y + n 1] (tx, ty, tz) Phép chiếu phối cảnh - Perspective projections! Uốn - Bends, Vuốt tapers v.v.v 21 22 Phép tỉ lệ [ x' y ' 1] = [ x ⎡ S1 0⎤ y 1]⎢ S 0⎥ = [ x.S1 y.S 1] ⎢ ⎥ ⎣⎢ 0 1⎥⎦ Phép quay [ x' y ' 1] = [ x y ⎡ cos φ 1] ⎢ − sin φ ⎢ ⎢⎣ = [ x cos φ − y sin φ sin φ cos φ 0⎤ 0⎥ ⎥ ⎥⎦ y ( x’, y’ ) x sin φ + y cos φ 1] ρ ( x, y ) ρ θ α 23 x 24 Khoa CNTT - DDHBK Hà nội hunglt@it-hut.edu.vn 8682595 Ma trận biến đổi chiều 3D Matrix Transformations Phép biến đổi tổng hợp z z z 25 Các phép biến đổi chuyển vị - translation, tỉ lệscaling quay-rotation sử dụng không gian 2D co thể mở rộng 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 26 Các phép biến đổi hình học chiều z Biểu diễn điểm không gian chiều z [ x* y* z* h ] = [ x y z ] [ T ] z [x' y' z' ]= [ x*/h y*/h z*/h ][ T ] z Ma trận biến đổi ⎡a b c p ⎤ ⎢d e f q ⎥ ⎥ [T ] = ⎢ ⎢g i j r ⎥ ⎥ ⎢ ⎣l m n s⎦ Phép tịnh tiến ⎡1 0 ⎢0 [T (dx, dy, dz )] = ⎢ ⎢0 ⎢ ⎣dx dy dz – – – z 27 [X'] = [ X ] [ T(dx,dy,dz) ] [ x' y' z' ] = [ x y z ].[ T(dx,dy,dz) ] = [ x+dx y+dy z+dz ] 28 Phép tỉ lệ [ x' y ' z ' 1] = [ x Rotation y ⎡ s1 ⎢ s2 z 1] ⎢ ⎢0 ⎢ ⎣0 0⎤ 0⎥⎥ s3 0⎥ ⎥ 1⎦ z z z = [ x s y s z s 1] In 2D, the only rotation possible was about the origin In 3D, there are 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 y z s1, s2, s3 hệ số tỉ lệ tương ứng trục toạ độ 30 y y x z 29 0⎤ 0⎥⎥ 0⎥ ⎥ 1⎦ x x z z Khoa CNTT - DDHBK Hà nội hunglt@it-hut.edu.vn 8682595 Quay quanh trục y Phép quay chiều z Quay quanh trục toạ độ z z Quay quanh trục x ⎡1 ⎢0 cos φ [Tx ] = ⎢ ⎢0 − sin φ ⎢ ⎣0 Quay quanh trục z ⎡ cos ϕ ⎢ − sin ϕ [Tz ] = ⎢ ⎢ ⎢ ⎣ ⎡cos θ ⎢ [Ty ] = ⎢ ⎢ sin θ ⎢ ⎣ 0⎤ 0⎥⎥ cos φ 0⎥ ⎥ 1⎦ sin φ sin ϕ cos ϕ 0 − sin θ 0 cos θ 0 0⎤ 0⎥ ⎥ 0⎥ ⎥ 1⎦ 0⎤ 0⎥⎥ 0⎥ ⎥ 1⎦ 31 32 Phép biến dạng Phép lấy đối xứng (secondary translation) (reflections-secondary translation) ⎡1 b c 0⎤ ⎢ d f 0⎥ ⎥ [ x' y ' z ' 1] = [ x y z 1] ⎢ ⎢ g i 0⎥ ⎢ ⎥ ⎣0 0 1⎦ = [x + yd + gz bx + y + iz cx + fy + z 1] 33 34 Quay quanh trục Quay quanh trục song song với trục tọa độ , , ⎡1 ⎢0 [ Tr ] = ⎢ ⎢0 ⎢ ⎣0 0 0 y z 0⎤ 0⎥ ⎥ 0⎥ ⎥ 1⎦ 0 ⎡1 ⎢ φ φ cos sin [Tth]=⎢ ⎢0 −sinφ cosφ ⎢ ⎢⎣0 y(1−cosφ)+zsinφ z(1−cosφ)−ysinφ 35 ⎡1 ⎢0 cos φ [T (φ )] = ⎢ ⎢0 − sin φ ⎢ ⎣0 0⎤ ⎥ 0⎥ 0⎥ ⎥ 1⎥⎦ [Tr] −1 sin φ cos φ 0⎤ 0⎥⎥ 0⎥ ⎥ 1⎦ ⎡1 ⎢0 =⎢ ⎢0 ⎢ ⎣0 − y − z 0⎤ 0⎥⎥ 0⎥ ⎥ 1⎦ 36 Khoa CNTT - DDHBK Hà nội hunglt@it-hut.edu.vn 8682595 Solution z z z z z Biến đổi góc nhìn Viewing Transformation Chuyển P1 gốc tọa độ Quay quanh trục y cho P1P2 nằm mặt phẳng (y, z) Quay quanh trục x cho P1P2 trùng với trục z Quay quanh trục z cho P1P3 nằm 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 37 Lê Tấn Hùng 38 Hệ tọa độ thực Nội dung z z z z z (WCS-World Coordinate System) Phép biến đổi nhìn Biến đổi hệ thống tọa độ Camera Biến đổi 3D viewing Ví dụ z z z 39 Là hệ tọa độ đối tượng chương trình ứng dụng sử dụng để mô tả tọa độ đối tượng giới thực Đơn vị hệ thống tọa độ phụ thuộc vào khơng gian kích thước đối tượng mơ tả, từ A0, nm, mm đến m, km Modeling Coordinate 40 Hệ tọa độ thiết bị Hệ tọa độ chuẩn (DCS-Device Coordinate System) z (NCS - Normalized Coordinate System) Là hệ thống tọa độ thiết bị nơi hiển thị hình ảnh không gian đối tượng mà ứng dụng mô tả z z z Chuyển đổi hệ tọa độ Giải vấn đề ứng dụng chạy thiết bị khác Có kích thước 1x1 NCS Wcs chun ®ỉi Dcs chun ®ỉi subselect.me Vïng täa ®é thiÕt bÞ VGA=640x480 41 ThiÕt bÞ hiĨn thÞ 42 ... Q = MP + Tr Các phép biến đổi hình học hai chiều z z z Phương pháp biểu diễn đối tượng P = [ x Phép biến đổi vị trí điểm ⎡a b ⎤ Phép biến đổi y ] T =⎢ ⎥ ⎣c d ⎦ Thực thi phép biến đổi điểm ảnh... Homogeneous Transform z z z Phép biến đổi với tọa độ đồng Ðưa nhìn hợp phép biến đổi phép nhân ma trận, hỗ trợ cho việc xử lý phần cứng phần mềm Kết hợp các phép biến đổi tạo thành ma trận tích... ( x, y ) ρ θ α 23 x 24 Khoa CNTT - DDHBK Hà nội hunglt@it-hut.edu.vn 8682595 Ma trận biến đổi chiều 3D Matrix Transformations Phép biến đổi tổng hợp z z z 25 Các phép biến đổi chuyển vị - translation,