Tài liệu này dành cho sinh viên, giáo viên khối ngành công nghệ thông tin tham khảo và có những bài học bổ ích hơn, bổ trợ cho việc tìm kiếm tài liệu, giáo án, giáo trình, bài giảng các môn học khối ngành công nghệ thông tin
ĐỒ HỌA 2DĐỒ HỌA 2D ĐƯỜNG CONGĐƯỜNG CONG Giảng viên : Bùi Tiến Lên Phân loạiPhân loại Quan điểm toán học - Đường cong được biểu diễn bằng hàm số - Đường cong được biểu diễn bằng phương trình tham số Quan điểm thiết kế - Đường cong CAD (Computer Aided Design) Trang Trang Trang Trang Trang Trang Trang Trang 2 22 22 22 2 - Đường cong CAD (Computer Aided Design) Đường cong được biểu diễn bằng Đường cong được biểu diễn bằng hàm sốhàm số Baứi toaựnBaứi toaựn Input Haứm soỏ y = f(x) Mien ủoỏi soỏ [x min , x max ] Output ẹo thũ haứm soỏ Trang Trang Trang Trang Trang Trang Trang Trang 4 44 44 44 4 x max x min y=f(x) Thuật toánThuật toán Bước 1 : Chia miền đối số ra N đoạn bằng nhau Trang Trang Trang Trang Trang Trang Trang Trang 5 55 55 55 5 x 0 x 1 x 2 x N-1 x N x min x max Thuaät toaùnThuaät toaùn Böôùc 2 : Tính y y y 1 y 2 y N - 1 y N Trang Trang Trang Trang Trang Trang Trang Trang 6 66 66 66 6 x 0 x 1 x 2 x N-1 x N x min x max y 0 y N - 1 Thuật toánThuật toán Bước 3 : Kẻ đường gấp khúc đi qua N + 1 điểm. y y 1 y 2 y N - 1 y N Trang Trang Trang Trang Trang Trang Trang Trang 7 77 77 77 7 x 0 x 1 x 2 x N-1 x N y 0 y N - 1 x min x max Caøi ñaëtCaøi ñaët // Hàm vẽ đường cong hàm số void DrawCurve2D(CDC *pDC, TFunc2D f, double x min , double x max ) { double ∆x, x, y; ∆x = (x max – x min )/N; x = x min ; y = f(x); pDC->MoveTo(ConvertWorldToScreen2D(x, y)); for ( int i=1; i<=N; i++) Trang Trang Trang Trang Trang Trang Trang Trang 8 88 88 88 8 for ( int i=1; i<=N; i++) { x += ∆x; y = f(x); pDC->LineTo(ConvertWorldToScreen2D(x, y)); } } Caøi ñaëtCaøi ñaët // Lớp phương trình hàm class TFunc2D { virtual double operator () (double x) = 0; }; Trang Trang Trang Trang Trang Trang Trang Trang 9 99 99 99 9 Vấn đề phân đoạnVấn đề phân đoạn Số phân đoạn N là bao nhiêu ? độ phân giải cột Trang Trang Trang Trang Trang Trang Trang Trang 10 1010 1010 1010 10 [...]... chất 1 Bảo toàn qua phép biến đổi affine Trang 31 Tính chất 2 Các điểm điểu khiển tạo thành bao lồi của đường cong Trang 32 Độ thẳng của đường cong Bezier p1 p2 p0 p3 p0 − p1 + p1 − p2 + p2 − p3 f= p0 − p3 Trang 33 Thuật toán vẽ đường cong Bezier Trang 34 Thuật toán vẽ đường cong Bezier Xét đường cong Bezier với các điểm điều khiển {p0, p1, , pn}, nối các điểm liên tiếp để tạo thành đa giác điều khiển... t)tp1y + t2p2y t ∈ [0, 1] p0 Trang 27 Đường cong Bezier bậc ba p1 p2 p0 p3 p(t) = (1 – t)3p0 + 3(1 – t)2tp1 + 3(1 – t)t2p2 + t3p3 t ∈ [0, 1] hoặc x(t) = (1 – t)3p0x + 3(1 – t)2tp1x + 3(1 – t)t2p2x + t3p3x y(t) = (1 – t)3p0y + 3(1 – t)2tp1y + 3(1 – t)t2p2y + t3p3y t ∈ [0, 1] Trang 28 Một số đường cong Bezier bậc ba Trang 29 Công thức xác đònh đường cong Ptts đường cong Bezier bậc n được tạo bởi n + 1điểm... ) = sin t t ∈ [0,2π] x(t ) = t cos t y(t ) = t sin t t ∈ [0,8π] Trang 23 ĐƯỜNG CONG BEZIER Đònh nghóa đường cong Input n +1 điểm điều khiển {p0, p1, , pn} Output p1 p0 pn Trang 25 Đường cong Bezier bậc một p1 p0 p(t) = (1 – t)p0 + tp1 t ∈ [0, 1] hoặc x(t) = (1 – t)p0x + tp1x y(t) = (1 – t)p0y + tp1y t ∈ [0, 1] Trang 26 Đường cong Bezier bậc hai p1 p2 p(t) = (1 – t)2p0 + 2(1 – t)tp1 + t2p2 t ∈ [0,... ∆∆yi + 6a∆x3 ∆ Trang 15 Đường cong được biểu diễn bằng Phương trình tham số Bài toán Input: Phương trình tham số x(t) y(t) Miền tham số t ∈ [tmin, tmax] Output: x (t ) = a cos (t ) y (t ) = a sin (t ) z = bt x(t ) = cos(5t ) cos(t ) y(t ) = cos(5t )sin(t ) t ∈[0,2π ] Trang 17 Thuật toán Bước 1 : Chia miền tham số ra N đoạn bằng nhau Miền tham số to tmin t1 t2 tN tmax Trang 18 Thuật toán Bước 2 : Tính (x,... : Chia miền tham số ra N đoạn bằng nhau Miền tham số to tmin t1 t2 tN tmax Trang 18 Thuật toán Bước 2 : Tính (x, y) ti tN t2 t1 to Trang 19 Thuật toán Bước 3 : Vẽ đường gấp khúc đi qua N + 1 điểm (xN, yN) (x2, y2) (x1, y1) (x0, y0) Trang 20 Cài đặt // Hàm v ư ng cong tham s void DrawCurve2D(CDC *pDC, TPara2D f, double tmin, double tmax) { double ∆t, t; TPoint2D p; ∆t = (tmax – tmin)/N; t = tmin; p =... đa giác điều khiển Chia mỗi đoạn trong đa giác với tỉ số t:(1-t), nối các điểm mới tính, ta có được đa giác với số đỉnh ít hơn 1 Lặp lại bước trên cho đến khi chỉ còn một điểm đơn, chính là điểm của đường cong Bezier ứng với tham số t Trang 35 Đạo hàm p’(0) = 3(p1 – p0) p’(1) = 3(p3 – p2) p”(0) = 6(p0 – 2p1 + p2) p”(1) = 6(p1 – 2p2 + p3) p1 p2 p3 p0 Trang 36 . ĐỒ HỌA 2DĐỒ HỌA 2D ĐƯỜNG CONG ƯỜNG CONG Giảng viên : Bùi Tiến Lên Phân loạiPhân loại Quan điểm toán học - Đường cong được biểu diễn bằng hàm số - Đường cong được biểu diễn bằng phương. kế - Đường cong CAD (Computer Aided Design) Trang Trang Trang Trang Trang Trang Trang Trang 2 22 22 22 2 - Đường cong CAD (Computer Aided Design) Đường cong được biểu diễn bằng Đường cong. Trang Trang Trang Trang Trang Trang Trang 19 1919 1919 1919 19 t o t 1 t 2 Thuật toánThuật toán Bước 3 : Vẽ đường gấp khúc đi qua N + 1 điểm (x 2 , y 2 ) (x N , y N ) Trang Trang Trang