Đây là slide chi tiết do chúng mình soạn thảo và lên trình bài vẽ đường tròn bằng thuật toán midpoint . Sẽ giúp bạn dễ hiểu hơn cũng như thuyết trình tốt hơn trong học tập . Slide rất chi tiết đó mọi người ..... hihi mọi người nhớ ủng hộ mình nhé .
NHĨM : THUẬT TỐN MID-POINT VẼ HÌNH ELLIPSE Đinh Doãn Việt Nguyễn Thị Phương Ngọc Nguyễn Thị Thu NỘI DUNG CHÍNH Giới thiệu vấn đề Giải Thuật Lưu Đồ Thuật Toán Code Minh Họa Giới thiệu vấn đề Vẽ hình Ellipse Thuật Tốn Bresenham Thuật Tốn Mid-Point Giải Thuật Phương trình Ellipse: 2 2 2 f(x,y) = b x + a y – a b < (x,y) nằm bên hình elip f(x,y) = (x,y) nằm hình elip > (x,y) nằm bên ngồi hình elip Ý Tưởng Thuật Tốn • • Tại vùng thứ nhất, x biến thiên nhanh y vùng thứ hai , y biến thiên nhanh x Nhớ lại công thức hệ số góc đường cong : Chia Elip làm phần tiếp điểm Q nơi có hệ số góc tiếp tuyến với Elip -1 = : fx fy đạo hàm riêng phần f(x,y) theo x, theo y 2 2 2 f(x,y) = b x + a y – a b = Phân Tích Giải Thuật Trong phần thứ nhất: Giả sử vẽ điểm (xi,yi), điểm elip chọn bước nhảy i+1 là T S Trung điểm I TS định điểm chọn Giá trị f(x,y) điểm I: di = f(xi + 1, yi – ) = b 2 2 2 (xi + 1) + a (yi – ) – a b + Nếu di > trung điểm I nằm đường elip điểm chọn S + Nếu di = trung điểm I nằm đường elip điểm chọn S + Nếu di < trung điểm I nằm đường elip điểm chọn T Phân Tích Giải Thuật Ta lại có: 2 2 2 di+1 = f(xi+1 + 1, yi+1 – ) = b (xi+1 +1) + a (yi+1 – ) – a b Suy ra: 2 2 2 di+1 – di = b [(xi+1 +1) – (xi +1) ] +a [(yi+1 – ) – (yi – ) ] Vì xi+1 = xi+1 nên 2 2 di+1 – di = 2b xi+1 + b + a [(yi+1 – ) – (yi – ) ] Nếu điểm chọn T ( < 0) Nếu điểm chọn S ( ≥ 0) thì Ta Ta có có :: 2x + b2 2 (= d + fx + b2 d == d ++ 2b di+1 d 2b x + b (= dii + fx + b )) i i+1 i+1 i i+1 2 2 + 1) + b2 == d dii ++ 2b 2b (x (xi i + 1) + b 2 2 == d + 3) dii ++ b b (2x (2xi i + 3) Với điểm (0,b) ta có: 2 2 d1 = f(0,b) = b + a (b – ) – a b 2 = b ─ a b + Ta Ta có: có: 2 2x + b2 – 2a2 2y (= d + fx + b2 2 – fy) d == d ++ 2b di+1 d 2b x + b – 2a yi+1 i i+1 i+1 i i+1 i+1 (= dii + fx + b – fy) 2 2 – 2a2 ++ 1) ++ b – 1) == d dii ++ 2b 2b (x (xi 1) b – 2a (y (yi i i – 1) 2 == d ++ 3) ++ aa2 (-2y + 2) dii ++ b b (2x (2xi 3) (-2yi i i + 2) Phân Tích Giải Thuật 2 Trong phần thứ hai: Chúng ta tính tốn phần Giả sử ta phải xác định điểm (xj+1,yj+1) elip bước j+1 Điểm chọn U V Trung điểm K UV định việc chọn điểm U hay điểm V Giá trị f(x,y) điểm K: 2 2 2 ej = f(xj + , yj – 1) = b (xj + ) + a (yj – 1) – a b + Nếu ej > điểm chọn U + Nếu ej = điểm chọn U + Nếu ej < điểm chọn V Phân Tích Giải Thuật Ta lại có: 2 2 2 ej+1 = f(xj+1 + , yj+1 – 1) = b (xj+1 + ) + a (yj+1 – 1) – a b Suy ra: 2 2 2 ej+1 – ej = b [(xj+1 + ) – (xj + ) ] + a [(yj+1 – 1) – (yj – 1) ] 2 2 = b [(xj+1 + ) – (xj + ) ] – 2a yj+1 + a (Chú ý : yj+1 = yj – 1) Phân Tích Giải Thuật Nếu điểm chọn U (tức ej ≥ 0) Nếu điểm chọn V (tức ej < ) xj+1 = xj xj+1 = xj+1 Ta có: Ta có: 2 ej+1 = ej – 2a yj+1 + a (= ej – fy + a ) 2 = ej – 2a (yj -1) + a = ej – a (3 – 2yj) Giá 2 2 ej+1 = ej + 2b xj+1 – 2a yj+1 + a (= ej + fx – fy + a ) 2 = ej + 2b (xj + 1)– 2a (yj -1) + a 2 = ej + b (2xj + 2)+ a (3 -2yj ) trị khởi tạo ban đầu phần phụ thuộc vào vị trí cuối phần , giả sử (xk,yk) Khi đó: 2 2 e1 = f(xk + , yk – 1) = b (xk + ) + a (yk – 1) – a b Lưu Đồ Thuật Toán Bắt Đầu x=0, y = b p= S S y Kết Thúc Đ Đ S p y=y-1 S p=p+ Đ p=p+ p p=p+ Đ x=x+1 p=p+ x=x+1 putpixel(x,y,color) y=y-1 putpixel(x,y,color) Lưu Đồ Thuật Toán Tại lại x Do phần ý tưởng thuật toán, chia elip làm phần để vẽ lấy điểm Q có hệ số góc tiếp tuyến với 2 elip -1 làm giao điểm Theo công thức hệ số nêu trên: dx/dy = fx/fy = (2b x) /( 2a y) Tại điểm có tọa độ (0,b), thay x=0 y=b vào công thức hệ số góc= 0/( 2a b) lớn -1 Nên ta chọn vẽ theo nhánh Như vậy, việc so sánh 2a y < để chọn nhánh vẽ elip Code Minh Họa THANKS FOR YOUR ATTENTION ... di > trung điểm I nằm đường elip điểm chọn S + Nếu di = trung điểm I nằm đường elip điểm chọn S + Nếu di < trung điểm I nằm đường elip điểm chọn T Phân Tích Giải Thuật Ta lại có: 2 2...NHĨM : THUẬT TỐN MID-POINT VẼ HÌNH ELLIPSE Đinh Doãn Việt Nguyễn Thị Phương Ngọc Nguyễn Thị Thu NỘI DUNG CHÍNH Giới thiệu vấn đề Giải Thuật Lưu Đồ Thuật Toán Code Minh Họa Giới thiệu vấn đề Vẽ hình... Vẽ hình Ellipse Thuật Tốn Bresenham Thuật Tốn Mid-Point Giải Thuật Phương trình Ellipse: 2 2 2 f(x,y) = b x + a y – a b < (x,y) nằm bên hình elip f(x,y) = (x,y) nằm hình elip > (x,y) nằm