Danh mục

Bài giảng Đồ họa 2D: Đường cong - Bùi Tiến Lên

Số trang: 76      Loại file: ppt      Dung lượng: 1.11 MB      Lượt xem: 7      Lượt tải: 0    
tailieu_vip

Xem trước 8 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 2D: Đường cong có nội dung trình bày phân loại đường cong theo quan điểm toán học và theo quan điểm thiết kế, Đườ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ố, đường cong Cad, đường cong Hermite, đường cong phức, các đường cong Splines, đường cong B-Splines, đường cong Nurbs.
Nội dung trích xuất từ tài liệu:
Bài giảng Đồ họa 2D: Đường cong - Bùi Tiến Lên ĐỒ HỌA 2D ĐƯỜNG CONGGiảng viên : Bùi Tiến LênPhân loạiQuan đ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 2Đường cong được biểu diễn bằng hàm sốBài toán Input Hàm số y = f(x) Miền đối số [xmin, xmax] Output Đồ thị hàm số y=f(x) xmin xmax Trang 4Thuật toánBước 1 : Chia miền đối số ra Nđoạn bằng nhau x0 x1 x2 xN-1 xN xmin xmax Trang 5Thuật toánBước 2 : Tính y yN y1 y 2 y0 yN-1 x0 x1 x2 xN-1 xN xmin xmax Trang 6Thuật toánBước 3 : Kẻ đường gấp khúc đi quaN + 1 điểm. yN y1 y 2 y0 yN-1 x0 x1 x2 xN-1 xN xmin xmax Trang 7Cài đặt// Hàm vẽ đường cong hàm sốvoid DrawCurve2D(CDC *pDC, TFunc2D f, double xmin, double xmax){ double ∆x, x, y; ∆x = (xmax – xmin)/N; x = xmin; y = f(x); pDC->MoveTo(ConvertWorldToScreen2D(x, y)); for(int i=1; iLineTo(ConvertWorldToScreen2D(x, y)); }} Trang 8Cài đặt// Lớp phương trình hàmclass TFunc2D { virtual double operator () (double x) = 0;}; Trang 9Vấn đề phân đoạnSố phân đoạn N là bao nhiêu ? độ phân giải cột Trang 10Đồ thị đa thức bậc ba Cho y = ax3 + bx2 + cx + d x ∈ [xmin, xmax] y = 0.1 3 − 0.2x2 − 0.2x + 3 x x ∈ [ − 4,4] Trang 11Vấn đề tính giá trị đa thức Cách tính thông thường a*x*x*x + b*x*x + c*x + d; Cần 6 phép nhân và 3 phép cộng Cách tính Horner ((a*x + b)*x + c)*x + d Cần 3 phép nhân và 3 phép cộng Cách tính cải tiến ? Trang 12Vấn đề tính giá trị đa thứcÑa thöùc baäc nhaát y = ax + bCaùch tính thoâng thöôøng Caùch tính caûi tieán yi = axi + b y0 = ax0 + b yi+1 = yi + a∆ xTính Tính y0 = ax0 + b y0 = ax0 + b y1 = ax1 + b y1 = y0 + a∆ x y2 = ax2 + b y2 = y1 + a∆ x ... ... yi = axi + b yi = yi-1 + a∆ x yi+1 = axi+1 + b yi+1 = yi + a∆ x ... ... yN = axN+1 + b y0 = yi + a∆ x Trang 13Vấn đề tính giá trị đa thức Ña thöùc baäc hai y = ax2 + bx + c Caùch tính thoâng thöôøng Caùch tính caûi tieán yi = axi2 + bxi + c y0 = ax02 + bx0 + c ∆y0 = 2a∆ xx0 + a∆ x2 + b∆ x yi+1 = yi + ∆yi ∆y = ∆y + 2a∆ x2 i+1 i Trang 14Vấn đề tính giá trị đa thức Ña thöùc baäc ba y = ax3 + bx2 + cx + d Caùch tính caûi tieán y0 = ax03 + bx02 + cx0 + d ∆y0 = 3a∆ xx02 + (3a∆ x2 + 2b∆ x)x0 + a∆ x3 + b∆ x2 + ∆∆y0 = c∆ x yi+1 = 6a∆ x2x0 + 6a∆ x3 + 2b∆ x2 ∆yi+1 = yi + ∆yi = ∆yi + ∆∆yi ∆∆yi+1 ∆∆yi + 6a∆ x3 Trang 15Đường cong được biểu diễnbằ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) = cos( 5t) cos( t) y( t) = cos( 5t) sin( t) t ∈ [ 0,2π] Trang 17Thuật toánBước 1 : Chia miền tham số ra Nđoạn bằng nhau Miền tham số to t1 t2 tN tmin tmax Trang 18Thuật toánBước 2 : Tính (x, y) ti tN t2 t1 to Trang 19Thuật toánBước 3 : Vẽ đường gấp khúc đi quaN + 1 điểm (xN, yN) (x2, y2) (x1, y1) (x0, y0) Trang 20 ...

Tài liệu được xem nhiều: