Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 32 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
32
Dung lượng
1,16 MB
Nội dung
ĐỒ HỌA 3D ĐỒ HỌA 3D CÁC PHÉP BIẾN ĐỔI 3D CÁC PHÉP BIẾN ĐỔI 3D Giảng viên : Bùi Tiến Lên Trang 2 Công thức biến đổi Công thức biến đổi )z,y,x(T'z )z,y,x(Ty )z,y,x(T x )P,P,P(TP )P,P,P(TP )P,P,P(T P hay )P(T'P hàm dạng đổi Biến P' P R R : T xạ ánh dạng đổi Biến z y ' x ' zyxz ' z zyxy ' y zyxx ' x 33 = = = = = = = → Trang 3 Bieỏn ủoồi Taper Bieỏn ủoồi Taper f(z) r vụựi z)z,y,x(Tz' ry)z,y,x(Ty' rx)z,y,x(Tx' haứm Daùng z y x = == == == Trang 4 Bieỏn ủoồi Twist Bieỏn ủoồi Twist f(z) vụựi z)z,y,x(Tz' cosysinx)z,y,x(Ty' sinycosx)z,y,x(Tx' haứm Daùng z y x = == +== == Trang 5 Bieán ñoåi Bend Bieán ñoåi Bend Trang 6 Bieỏn ủoồi affine Bieỏn ủoồi affine ( ) ( ) = +++= +++= +++= 1mmm 0mmm 0mmm 0mmm 1PPP1PPP : traọn ma Daùng mPmPmPmP mPmPmPmP mPmPmPmP : haứm Daùng 323130 222120 121110 020100 zyx ' z ' y ' x 32z22y12x02 ' z 31z21y11x01 ' y 30z20y10x00 ' x Trang 7 Caøi ñaët Caøi ñaët // Lưu thông tin phép biến đổi struct TAffine3D { double M[4][4]; }; Trang 8 Tính chất Tính chất Phé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 9 Nguyên lý kết hợp và phân rã Nguyên lý kết hợp và phân rã Nếu T 1 , T 2 là phép biến đổi affine Thì - T = T 1 + T 2 là phép biến đổi affine - M = M 1 x M 2 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 10 Phép tònh tiến Phép tònh tiến O x y z z y x t : Oz trục trên dời độ t : Oy trục trên dời độ t : Ox trục trên dời độ : số Tham [...]... t t t x y z 0 0 0 1 Trang 12 Phép tỉ lệ Tham số : Tâm tỉ lệ : O Hệ số tỉ lệ trên 3 trục : sx , sy , sz y O z x Trang 13 Phép tỉ lệ – Công thức Dạng hàm ' Px = sxPx ' Py = syPy ' Pz = szPz Dạng ma trận sx 0 M= 0 0 0 sy 0 0 0 0 sz 0 0 0 0 1 Trang 14 Cài đặt TAffine3D BuildScaling3D(double sx, double sy, double sz) { TAffine3D T; T.M[0][0]=sz;T.M[0][1]= 0;T.M[0][2]=...Cài đặt TAffine3D 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 11 Phép tònh tiến – Công thức Dạng hàm ' Px = Px + t x... zs zx(1− c) − ys xy(1− c) − zs yy(1− c) + c zy(1− c) + xs M= xz(1− c) + ys yz(1− c) − xs zz(1− c) + c 0 0 0 0 0 0 1 Trang 28 Cài đặt TAffine3D BuildRotation3D(double angle, double x, double y, double z) { TAffine3D T; double c, s, d; angle *= PI/180; c = cos(angle); s = sin(angle); d = sqrt(x*x + y*y + z*z); if(d == 0) return; x /= d; y /= d; z /= d; T.M[0][0] T.M[1][0] T.M[2][0]... 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 15 Phép quay Tham số : Trục quay : v = { x, y, z} Góc quay : α y v = { x, y, z} α O z x Trang 16 Quay quanh trục Oz Tham số : } Trục quay : v = { 0,0,1 Góc quay : α y O z x Trang 17 Quay quanh trục... z*y*(1-c) + x*s; z*z*(1-c) + c; 0; T.M[0][3] T.M[1][3] T.M[2][3] T.M[3][3] = = = = 0; 0; 0; 1; return T; } Trang 30 Quay quanh một trục tổng quát y p1 α α v p0 O x z Trang 31 Quay quanh một trục tổng quát Tính v v = p1 − p0 Phân rã thành : -Tònh tiến p0 về gốc -Quay xung quanh trục v với góc α -Tònh tiến p0 về vò trí cũ Trang 32 . ĐỒ HỌA 3D ĐỒ HỌA 3D CÁC PHÉP BIẾN ĐỔI 3D CÁC PHÉP BIẾN ĐỔI 3D Giảng viên : Bùi Tiến Lên Trang 2 Công thức biến đổi Công thức biến đổi )z,y,x(T'z )z,y,x(Ty )z,y,x(T. ñaët Caøi ñaët // Lưu thông tin phép biến đổi struct TAffine3D { double M[4][4]; }; Trang 8 Tính chất Tính chất Phé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. là phép biến đổi affine Thì - T = T 1 + T 2 là phép biến đổi affine - M = M 1 x M 2 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 10 Phép