Tải bản đầy đủ (.ppt) (17 trang)

Bài giảng đồ họa raster các thuật toán vẽ đường tròn bùi tiến lên

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (125.99 KB, 17 trang )

ĐỒ HỌA RASTER

CÁC THUẬT TOÁN
VẼ ĐƯỜNG TRÒN

Giảng viên : Bùi Tiến Lên


Phân loại đường tròn
Đường tròn tâm O

O

Đường tròn tâm bất kỳ

O

Trang 2


Ứng dụng phép tịnh tiến
Nếu (x, y) thuộc đường tròn tâm O
Thì (x + xc, y + yc) thuộc đường tròn tâm (xc, yc)

(xc, yc)
(x+xc, y+yc)

O
(x, y)

Trang 3




Phương trình đường tròn

r
O

x2 + y2 = r2
y = r2 − x2

Trang 4


Tính đối xứng của đường tròn
gi
ác
1

y
ph
ân

Đường tròn có 4 trục đối xứng
-Trục Ox
-Trục Oy
-Trục phân giác thứ nhất
-Trục phân giác thứ hai

O


x
ph

ân

gi
ác
2

Trang 5


Ứng dụng tính đối xứng
Nếu (x, y) thuộc đường tròn
Thì (-x, y), (x, -y), (-x, -y), (y, x), (-y, x), (y, -x) và (-y, -x) thuộc
đường tròn
2

1

3

chọn
8

O
4

7


5

6

Trang 6


Vẽ cung một phần tám thứ nhất
Input
r bán kính
Output
{(x1, y1), (x2, y2) … (xn, yn)} “thuộc” cung một phần tám thứ
nhất

A
B
O
Trang 7


Khảo sát cung một phần tám thứ nhất
Mục tiêu khảo sát sự biến thiên của hoành độ và tung độ
Haøm y = r 2 − x 2 vôùi x ∈ [0,
x
y' = - 2
r − x2
r2
y" = - 2
(r − x 2 )3 2


r
]
2

Trang 8


Khảo sát cung 1/8 thứ nhất
Bảng biến thiên

x
y
y'

0
r
0

y" −

r
2
r
2

Đường cong
giảm chậm

−1



Trang 9


Thuật tốn trực tiếp
bước 1 Xác đònh điểm đầu
x1 = 0
y1 = r
bước 2 Xác đònh những điểm còn lại
r
Lặp xi < [ ]
2
xi+1 = xi + 1
y = r 2 − xi2+1
yi+1 = Round(y)

Trang 10


Thuật toán MidPoint
Dự đoán điểm sáng thứ i+1

i

A
B

Trang 11



Thut toỏn MidPoint
- Khỏi nim bờn trong / bờn
ngoi ng trũn
- Hm kim tra mt im bờn
trong / bờn ngoi ng trũn
F(x, y) = x2 + y2 r2
- Cỏch kim tra
P(x, y)

F(x, y)

beõn trong

<0

naốm treõn

=0

beõn ngoaứi

>0

bờn ngoi

bờn trong

Trang 12



Thuật toán MidPoint
Xây dựng biến fi
Trung điểm M của AB
M(xi + 1, yi – 1/2)
Biến fi

yi

i

yi-1/2

A

M

fi = F(M)
fi = F(xi + 1, yi – 1/2)
yi-1

B
xi

xi+1

Trang 13


Thuật toán MidPoint
Công thức tính fi

1
fi = x + 2xi + y − yi + 1− r +
4
Công thức tính fi nguyên
2
i

2
i

2

fi = xi2 + 2xi + yi2 − yi + 1− r 2

Trang 14


Khi fi không nguyên !
Có hai cách giải quyết để fi thành nguyên
Cách 1
fi < 0 ⇔ kfi < 0
fi ≥ 0 ⇔ kfi ≥ 0
Với k > 0
Cách 2
fi < 0 ⇔ [fi] < 0
fi ≥ 0 ⇔ [fi] ≥ 0
Trang 15


Thuật toán MidPoint

Thuật toán
Bước 1 Xác định điểm đầu tiên
x1 = 0
y1 = r
Bước 2 Xác định những điểm tiếp theo
Lặp xi < yi
fi = …
fi < 0
xi+1 = xi + 1
yi+1 = yi
fi ≥ 0
xi+1 = xi + 1
yi+1 = yi – 1

Trang 16


Thuật toán MidPoint
Cách tính fi cải tiến
f1 = 1 – r
fi < 0
fi+1 = fi + 2xi + 3
fi ≥ 0
fi+1 = fi + 2xi – 2yi + 5

Trang 17




×