Tài liệu tham khảo về thuật toán vẽ elip | Thuật toán vẽ Ellip + = 1 (A > B) B1: Thu hẹp vùng vẽ Vẽ cung ở góc phần tư thứ I rồi lấy đối xứng qua trục tung, trục hoành, gốc toạ độ được các phần còn lại B2: Phân vùng vẽ. Xét cung ở góc phần tư thứ I có phương trình y = 0 ≤ x ≤ A y’ = – y’ = – 1→ –= – 1 ↔ x = Suy ra có 2 vùng vẽ: Vùng vẽ 1: 0 ≤ x ≤ ; ứng với –1≤ y’≤ 0 Vùng vẽ 2: ≤ x ≤ A ; y’≤ 1 B Vẽ vùng 1 Đặt F(x,y) = Bx2 + A2y2 – A2B2 Biết Mi(xi,yi) Xác định Mi+1(xi+1,yi+1) xi+1 = xi + 1 yi+1 Є {yi , yi – 1} Nhật xét : x tăng đều y giảm chậm Gọi M là trung điểm của SP Mi (xi + 1, yi – 1/2 ) Đặt Pi = 4 F(x,y) Pi = 4 [B2 (xi + 1)2 +A2(yi – 1/2)2 – A2B2] (1) Pi+1 = 4 [B2 (xi+1 + 1)2 +A2(yi+1 – 1/2)2 – A2B2] Xét hiệu Pi+1 - Pi = 4 [B2 (xi+1 + 1)2 +A2(yi+1 – 1/2)2 – A2B2] – 4 [B2 (xi + 1)2 +A2(yi – 1/2)2 – A2B2] = 4 [B2 (xi + 2)2 +A2(yi+1 – 1/2)2 – A2B2] – 4 [B2 (xi + 1)2 +A2(yi – 1/2)2 – A2B2] = 4 [B2 (2xi + 3) + A2((yi+1)2 – (yi)2 – yi+1 + yi )] (2) Biện luận theo dấu của Pi *Nếu Pi < 0 → F(x,y) < 0 → M nằm trong (E) → điểm Q gần điểm P Chọn điểm P để vẽ: Khi đó yi +1 = yi Thay vào (2) ta được Pi+1 - Pi = 4 [B2 (2xi + 3)] Pi+1 = Pi + 8 B2 xi + 12 B2 (3) *Nếu Pi ≥ 0 → F(x,y) ≥ 0 → M nằm ngoài (E) → điểm Q gần điểm S Chọn điểm S để vẽ: Khi đó yi +1 = yi – 1 Thay vào (2) ta được Pi+1 - Pi = 4 [B2 (2xi + 3) + A2((yi – 1)2 – (yi)2 – (yi – 1) + yi )] = + 4 [B2 (2xi + 3) – 2A2yi + 2A2] Pi+1 = Pi + 4 [B2 (2xi + 3) – 2A2yi + 2A2] = Pi + 8B2 xi – 8A2yi + 8A2 +12B2 (4) Tính P0 ứng với điểm ban đầu M0 (0,B) P0 = 4 [B2 (0 + 1)2 + A2(B – 1/2)2 – A2B2] = 4B2 – 4A2B + A2 Vẽ vùng 2 Biết Mi(xi,yi) Xác định Mi+1(xi+1,yi+1) xi+1 Є { xi , xi+ 1} yi+1 = yi – 1 Nhật xét : x tăng chậm y giảm đều Gọi M là trung điểm của SP Mi (xi + 1/2, yi – 1 ) Đặt Pi = 4 F(x,y) Pi = 4 [B2 (xi + 1/2)2 + A2(yi – 1)2 – A2B2] (1) Pi+1 = 4 [B2 (xi+1 + 1/2)2 + A2(yi+1 – 1)2 – A2B2] Xét hiệu Pi+1 - Pi = 4 [B2 (xi+1 + 1/2)2 +A2(yi+1 – 1)2 – A2B2] – 4 [B2 (xi + 1/2)2 + A2(yi – 1)2 – A2B2] = 4 [B2 (xi+1 + 1/2)2 +A2(yi – 2)2 – B2 (xi + 1/2)2 – A2(yi – 1)2] = 4 [B2 ((xi+1)2 – (xi)2 + xi+1 – xi) – 2A2yi + 3A2] (2) Biện luận theo dấu của Pi *Nếu Pi < 0 → M nằm trong (E) → điểm Q gần điểm P Chọn điểm P để vẽ: Khi đó xi +1 = xi + 1 Thay vào (2) ta được Pi+1 - Pi = 4 [B2 ((xi + 1)2 – (xi)2 + xi + 1 – xi) – 2A2yi + 3A2] = 4 [B2 (2xi + 2)2 – 2A2yi +3A2] Pi+1 = Pi + 8B2 xi – 8A2yi + 8B2 + 12A2 (3) *Nếu Pi ≥ 0 → M nằm ngoài (E) → điểm Q gần điểm S Chọn điểm S để vẽ: Khi đó xi +1 = xi Thay vào (2) ta được Pi+1 - Pi = 4 [B2 ((xi)2 – (xi)2 + xi – xi) – 2A2yi + 3A2] = 4 [– 2A2yi +3A2] Pi+1 = Pi – 8A2yi + 12A2 (4) P0 của vùng 2 là điểm P cuối của vùng 1