Tài liệu Chương 1_ Cơ sở đồ họa (ky thuat do hoa) - Pdf 87


Chương 1
CÁC GiẢI THUẬT SINH THỰC THỂ
CƠ SỞ
Giảng viên: Nguyễn Viết Cường
NỘI DUNG

Các đối tượng đồ họa cơ sở

Hệ tọa độ thực và hệ tọa độ thiết bị

Điểm và đoạn thẳng

Các giải thuật xây dựng các thực thể cơ sở

Giải thuật vẽ đường thẳng thông thường

Thuật toán DDA (Digital Differential Analizer)

Giải thuật Bresenham

Giải thuật trung điểm-Midpoint

Giải thuật sinh đường tròn

Giải thuật sinh đường tròn Midpoint

Giải thuật sinh đường ellipse

Giải thuật sinh ký tự


5
P
wc
(x, y)
P
wc
(x, y)
x
max
y
max
x
y
O O
HỆ TỌA ĐỘ THẾ GiỚI THỰC VÀ THIẾT BỊ
HCMUS - 2009
HCMUS - 2009
Bài giảng Đồ họa máy tính – Đặng Nguyễn Đức Tiến - Vũ Quốc Hoàng - Lê Phong
Bài giảng Đồ họa máy tính – Đặng Nguyễn Đức Tiến - Vũ Quốc Hoàng - Lê Phong
6
6
x
y
O
c
r
O
Quy ước bàn tay phải
Quy ước bàn tay trái
HỆ TỌA ĐỘ THẾ GiỚI THỰC VÀ THIẾT BỊ

2
) như sau:
(y-y
1
)/( x-x
1
) = ( y
2
-y
1
)/( x
2
-x
1
)
 (y-y
1
)(x
2
-x
1
)=(x-x
1
)(y
2
-y
1
)
 (x
2

2
-y
1
)/(x
2
-x
1
))x
1
 y = mx + b
Trong đó: m = (y
2
-y
1
)/(x
2
-x
1
) độ dốc hay hệ số góc của đường b =
y
1
- kx
1
Đoạn chắn trên trục y
∆y = m ∆ x (tức là khi x thay đổi thì y thay đổi theo)
ĐIỂM VÀ ĐOẠN THẲNG
+ Biểu diễn không tường minh: ax+by+c=0

Ta có
(y2-y1)x - (x2-x1)y + (x2-x1)y1 - (y2-y1)x1 = 0

2
ta chọn đơn vị nhỏ nhất của màn hình ∆x=1.
GIẢI THUẬT VẼ ĐOẠN THẲNG THÔNG THƯỜNG

Lưu đồ giải thuật:
Input: x
1
, x
2
,
y
1
, y
2
, color
x =x
1,
y = y
1
x < x
2

y = y + (x-x
1
)*(y
2
-y
1
)/(x
2

, y
i
+1}
THUẬT TOÁN DDA (Digital Differential Analizer)

Việc quyết định chọn y
i+1
là y
i
hay y
i
+1 dựa vào
đường thẳng y=mx+b

Tính toạ độ điểm (x
i
+1,y) thuộc về đoạn thẳng
thực, tiếp đó y
i+1
sẽ trị sau khi làm tròn tung độ y
y=m(x
i
+1)+b=y
i
+m
y
i+1
= round(y)
THUẬT TOÁN DDA (Digital Differential Analizer)



Yêu cầu: về nhà sinh viên tự cài đặt thuật toán
THUẬT TOÁN BRESENHAM

Giả sử đường cong được xấp xỉ
thành các điểm lần lượt là (x
i
,y
i
).
Các điểm này có tọa độ nguyên và
được hiển thị trên màn hình.

Bài toán đặt ra là nếu biết được
tọa độ (x
i
,y
i
) của bước thứ i, thì
điểm ở bước i+1 là (x
i+1
,y
i+1
) sẽ
được xác định như thế nào.

Trong trường hợp hệ số góc
0≤m≤1, chúng ta có x
i+1
=x

1
) và (x
2
,
y
2
) là y=mx+b với
m=Dy/Dx và b=y
1
- mx
1
.

Đặt d
1
=y-y
i
và d
2
=(y
i
+1)-y,
do đó việc chọn tọa độ của
y
i+1
phụ thuộc vào d
1
và d
2


=x
i
+1
S
d
2
d
1
(x
i+1
,y=f(x
i+1
))
THUẬT TOÁN BRESENHAM
d
1
- d
2
= (2y – 2y
i
– 1) là một số thực do chứa m
Xét p
i
= Dx (d
1
- d
2
) = Dx (2y - 2y
i
- 1)

+ C)
= 2Dy – 2Dx(y
i+1
– y
i
)
Từ đây, ta suy ra cách tính p
i+1
theo p
i
:

Nếu p
i
<0 thì y
i+1
=y
i
nên p
i+1
= p
i
+ 2Dy

Ngược lại thì y
i+1
=y
i
+1 nên p
i+1

1
và d
2
sao
cho d
1
là độ lệch từ y đến
điểm hiện hành y
i
- Xác định p
i
sao cho p
i

cùng dấu với (d
1
– d
2
) và
mang giá trị nguyên
- Tính p
i+1
theo p
i
theo 2
trường hợp p
i
<0 và p
i
>

AB
+ Nếu M ở trên đoạn
thẳng AB thì chọn B còn
+ Nếu M ở dưới đoạn
thẳng AB chọn A
Công thức đơn giản hơn, tạo
được các điểm tương tự như với
Bresenham
d = f(x
i
+ 1, y
i
+ 1/2) là
trung điểm của đoạn AB
GIẢI THUẬT TRUNG ĐIỂM –Mid Point
So sánh hay kiểm tra M sẽ được thay bằng việc xét giá trị
d.
- d > 0 điểm B được chọn khi đó y
i+1
= y
i

- nếu d<0 điểm A được chọn khi đó y
i+1
=y
i
+ 1
Trường hợp d = 0 chúng ta có thể chọn điểm bất kỳ hoặc
A, hoặc B.
Sử dụng phương pháp biểu diễn không tường minh ta có:

i+1
– d
i
= a+b
Hay d
i+1
= d
i
+ dy - dx
+ Nếu chọn B (d>0) thì M sẽ tăng theo x
d
i+1
=f(x
i
+2,y
i
+1/2) = a(x
i
+2) +b(y
i
+1/2) +c
d
i+1
- d
i
= a
Hay d
i+1
= d
i

1
,y
1
) = 0
Vậy d
1
= a+ b/2 = dy - dx/2


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status