intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

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

Chia sẻ: Na Na | Ngày: | Loại File: PPT | Số trang:76

177
lượt xem
31
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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.

Chủ đề:
Lưu

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

  1. ĐỒ HỌA 2D ĐƯỜNG CONG Giảng viên : Bùi Tiến Lên
  2. Phâ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 2
  3. Đường cong được biểu diễn bằng hàm số
  4. 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 4
  5. Thuật toán Bước 1 : Chia miền đối số ra N đoạn bằng nhau x0 x1 x2 xN-1 xN xmin xmax Trang 5
  6. Thuật toán Bước 2 : Tính y yN y1 y 2 y0 yN-1 x0 x1 x2 xN-1 xN xmin xmax Trang 6
  7. Thuật toán Bước 3 : Kẻ đường gấp khúc đi qua N + 1 điểm. yN y1 y 2 y0 yN-1 x0 x1 x2 xN-1 xN xmin xmax Trang 7
  8. Cà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 8
  9. Cài đặt // Lớp phương trình hàm class TFunc2D { virtual double operator () (double x) = 0; }; Trang 9
  10. Vấn đề phân đoạn Số phân đoạn N là bao nhiêu ? độ phân giải cột Trang 10
  11. Đồ 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 11
  12. Vấ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 12
  13. Vấn đề tính giá trị đa thức Ña thöùc baäc nhaát y = ax + b Caù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∆ x Tí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 13
  14. Vấ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 14
  15. Vấ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
  16. Đường cong được biểu diễn bằng Phương trình tham số
  17. 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 17
  18. Thuật toán Bướ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 18
  19. Thuật toán Bước 2 : Tính (x, y) ti tN t2 t1 to Trang 19
  20. 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
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2