You are on page 1of 17

ĐỒ HỌA RASTER

CÁC THUẬT TOÁN


VẼ ĐƯỜNG TRÒN
Phân loại đường tròn
đường tròn tâm O đường tròn tâm bất kỳ

O 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 x2 + y2 = r 2
O y = r 2 − x2

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

x
O

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 choï
n

3 8

O
4 7

5 6
Trang 6
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 sự biến thiên
Mục tiêu khảo sát sự biến thiên của hoành độ và tung độ
của cung tròn
r
Haøm y = r 2 − x 2 vôùi x  [0, ]
2
x
y' = - 2
r − x2
r2
y" = - 2
(r − x 2 )3 2

Trang 8
Bảng biến thiên

r
x 0
2 Đường cong
r giảm chậm
y r
2
0
y'
−1
y" − −

Trang 9
Thuật toán trực tiếp
böôùc 1 Xaùc ñònh ñieåm ñaàu
x1 = 0
y1 = r
böôùc 2 Xaùc ñònh nhöõng ñieåm coøn laïi
r
Laëp xi < [ ]
2
xi+1 = xi + 1
y = r 2 − xi2+1
yi+1 = Round(y)

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

i A

Trang 11
Thuật toán MidPoint
- Vùng bên trong / bên ngoài
đường tròn
- Hàm kiểm tra một điểm bên bên ngoài
trong / bên ngoài đường tròn
F(x, y) = x2 + y2 – r2
- Cách kiểm tra bên trong
P(x, y) F(x, y)
bên trong <0
nằm trên =0
bên ngoài >0

Trang 12
Thuật toán MidPoint
Xây dựng biến fi
yi i A
Trung điểm M của AB
M(xi + 1, yi – 1/2)
Biến fi
yi-1/2
fi = F(M) 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 +
2
i
2
i
2

4
Công thức tính fi nguyên
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 còn lại
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

You might also like