1. Trang chủ
  2. » Công Nghệ Thông Tin

Slide vẽ đường elip bằng thuật toán Midpoint

17 712 6

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 17
Dung lượng 3,76 MB

Nội dung

Đâ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

Ngày đăng: 08/01/2019, 16:46

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w