ĐỒ 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 troøn
r
O
x2 + y2 = r 2
y = r2 − x2
Trang 4
Tính đối xứng của đường trò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
y
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
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 độ
r
Hàm y = r − x với x ∈ [0,
]
2
x
y' = - 2
r − x2
r2
y" = - 2
(r − x 2 )3 2
2
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 toá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
Thuaọt toaựn MidPoint
Dửù ủoaựn ủieồm saựng thửự i+1
i
A
B
Trang 11
Thuật toán MidPoint
- Khái niệm bên trong / bên
ngoài đường tròn
- Hàm kiểm tra một điểm
bên trong / bên ngoài
đường tròn
F(x, y) = x2 + y2 – r2
- Cách kiểm tra
P(x, y)
F(x, y)
bên trong
<0
nằm trên
=0
bên ngoài
>0
bên ngoài
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
fi = F(M)
fi = F(xi + 1, yi – 1/2)
yi
i
yi-1/2
A
M
yi-1
B
xi
xi+1
Trang 13
Thuaọt toaựn MidPoint
Coõng thửực tớnh fi
1
fi = x + 2xi + y yi + 1 r +
4
Coõng thửực tớnh fi nguyeõ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
Thuaọt toaựn MidPoint
Caựch tớnh fi caỷi tieỏn
f1 = 1 r
fi < 0
fi+1 = fi + 2xi + 3
fi 0
fi+1 = fi + 2xi 2yi + 5
Trang 17