Danh mục tài liệu

Bài giảng Đồ họa 3D: Các phép biến đổi 3D - Bùi Tiến Lên

Số trang: 32      Loại file: ppt      Dung lượng: 1.45 MB      Lượt xem: 4      Lượt tải: 0    
Xem trước 4 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Bài giảng Đồ họa 3D: Các phép biến đổi 3D có nội dung trình bày công thức biến đổi, biến đổi Twist, biến đổi affine, nguyên lý kết hợp và phân rã, phép quay và một số nội dung khác. Tham khảo nội dung bài giảng để hiểu rõ hơn về các phép biến đổi 3D.
Nội dung trích xuất từ tài liệu:
Bài giảng Đồ họa 3D: Các phép biến đổi 3D - Bùi Tiến Lên ĐỒ HỌA 3DCÁC PHÉP BIẾN ĐỔI 3D Giảng viên : Bùi Tiến LênCông thức biến đổiBieán daïngaùnh ñoåi xaï T :R3 → R3 P  PBieán daïng ñoåi haøm P = T(P )hay Px = Tx (Px ,Py ,Pz ) x = Tx (x, y, z) Py = Ty (Px ,Py ,Pz ) y = Ty (x, y, z) Pz = Tz (Px ,Py ,Pz ) z = Tz (x, y, z) Trang 2Biến đổi TaperDaïnghaøm x= Tx (x, y, z) = rx y= Ty (x, y, z) = ry z = Tz (x, y, z) = z vôùi = f(z) r Trang 3Biến đổi TwistDaïnghaøm x= Tx (x, y, z) = x cos θ − y sinθ y= Ty (x, y, z) = x sinθ + y cos θ z = Tz (x, y, z) = z vôùiθ = f(z) Trang 4Biến đổi Bend Trang 5Biến đổi affineDaïnghaøm : Px = m00Px + m10Py + m20Pz + m30 Py = m01Px + m11Py + m21Pz + m31 Pz = m02Px + m12Py + m22Pz + m32Daïngma traän :  m00 m01 m02 0    m10 m11 m12 0 (P x ) Py Pz 1 = (Px Py Pz ) 1 m20 m21 m22 0  m   30 m31 m32 1  Trang 6Cài đặt// Lưu thông tin phép biến đổistruct TAffine3D { double M[4][4];}; Trang 7Tính chấtPhép biến đổi affine 3D chiều-Bảo toàn tính thẳng.-Bảo toàn tính song song.-Bảo toàn tỉ lệ. Trang 8Nguyên lý kết hợp và phân rã Nếu T1, T2 là phép biến đổi affine Thì - T = T1 + T2 là phép biến đổi affine - M = M1 x M2 Mọi phép biến đổi affine bất kỳ đều có thể phân rã thành một chuỗi các phép biến đổi cơ bản. Trang 9Phép tịnh tiếnTham soá : ñoädôøi treân Ox : tx truïc ñoädôøi treân Oy : ty truïc ñoädôøi treân Oz : tz truïc y O x z Trang 10Cài đặtTAffine3D BuildTranslation3D(double tx, double ty, double tz){ TAffine3D T; T.M[0][0]= 1;T.M[0][1]= 0;T.M[0][2]= 0;T.M[0][3]=0; T.M[1][0]= 0;T.M[1][1]= 1;T.M[1][2]= 0;T.M[1][3]=0; T.M[2][0]= 0;T.M[2][1]= 0;T.M[2][2]= 1;T.M[2][3]=0; T.M[3][0]=tx;T.M[3][1]=ty;T.M[3][2]=tz;T.M[3][3]=1; return T;} Trang 11Phép tịnh tiến – Công thứcDaïnghaøm Px = Px + tx Py = Py + ty Pz = Pz + tz Daïngma traän 1 0 0 0   0 1 0 0 M= 0 0 1 0   t t t 1  x y z  Trang 12Phép tỉ lệTham soá : Taâm leäO tæ : Heä tæ treân truïc s x , s y , sz soá leä 3 : y O xz Trang 13Phép tỉ lệ – Công thứcDaïnghaøm Px = s xPx Py = s yPy Pz = szPzDaïngma traän  sx 0 0 0   0 sy 0 0 M= 0 0 sz 0   0 0 0 1   Trang 14Cài đặtTAffine3D BuildScaling3D(double sx, double sy, double sz){ TAffine3D T; T.M[0][0]=sz;T.M[0][1]= 0;T.M[0][2]= 0;T.M[0][3]=0; T.M[1][0]= 0;T.M[1][1]=sy;T.M[1][2]= 0;T.M[1][3]=0; T.M[2][0]= 0;T.M[2][1]= 0;T.M[2][2]=sz;T.M[2][3]=0; T.M[3][0]= 0;T.M[3][1]= 0;T.M[3][2]= 0;T.M[3][3]=1; return T;} Trang 15Phép quayTham soá :  Truïcquay : v = { x, y, z} Goùc quay : α y  v = { x, y, z} α O x z Trang 16Quay quanh trục OzTham soá :  Truïcquay : v = { 0,0,1} Goùc quay : α y O x z Trang 17Quay quanh trục Oz – Công thức y Q’ α P’ Q O P x z Trang 18Quay quanh trục Oz – Công thứcDaïnghaøm Px = cos αPx − sinαPy Py = sinαPx + cos αPy Pz = Pz Daïngma traän  cos α sinα 0 0     − sinα M= cos α 0 0  0 0 1 0    0    0 0 1  Trang 19Quay quanh trục OxTham soá :  Truïcquay : v = {10,0} , Goùc quay : α y O x z Trang 20 ...