VẼ ELLIPSE-Thuật toán Bresenham-Nhóm 6

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 17

TRƯỜNG ĐẠI HỌC ĐIỆN LỰC - D16CNPM2

VẼ ELLIPSE - Thuật toán


Bresenham
NHÓM 6
NỘI DUNG TRÌNH BÀY
1.GIỚI THIỆU KHÁI QUÁT VỀ THUẬT TOÁN
BRESENHAM
2.PHÂN TÍCH CHI TIẾT THUẬT TOÁN
3.CODE MINH HỌA VẼ HÌNH ELLIPSE BẰNG
THUẬT TOÁN BRESENHAM
GIỚI THIỆU KHÁI QUÁT VỀ THUẬT
TOÁN BRESENHAM
Định nghĩa:
Thuật toán Bresenham là một thuật toán được sử dụng để
vẽ các đường thẳng và các hình dạng khác trên màn hình
của máy tính hoặc các thiết bị hiển thị khác. Thuật toán này
được đặt tên theo tên của tác giả của nó, Jack E.
Bresenham, và được phát triển vào những năm 1960.
GIỚI THIỆU KHÁI QUÁT VỀ THUẬT
TOÁN BRESENHAM
Thuật toán vẽ đường Ellipse bằng Bresenham sử dụng
phương pháp quét theo chiều cung và chiều ngang để tìm
các điểm trên đường Ellipse. Thuật toán này bắt đầu với
việc tính toán bán kính lớn (a) và bán kính nhỏ (b) của Ellipse.
Sau đó, nó tính toán các giá trị đặc trưng cho từng điểm
trên đường Ellipse và vẽ nó trên màn hình.
GIỚI THIỆU KHÁI QUÁT VỀ THUẬT
TOÁN BRESENHAM
Thuật toán sử dụng các giá trị để xác định vị trí của từng
điểm trên đường Ellipse, bao gồm khoảng cách đến điểm
tiếp theo, các giá trị sai số, và các hệ số góc độ. Thuật toán
này cần tính toán các giá trị này cho mỗi điểm trên đường
Ellipse, cho đến khi đã vẽ xong toàn bộ đường.

Thuật toán vẽ đường Ellipse Bresenham là một thuật toán


hiệu quả và chính xác để vẽ các đường Ellipse trên màn hình
máy tính, và được sử dụng rộng rãi trong các ứng dụng đồ
họa và trò chơi.
PHÂN TÍCH CHI TIẾT
THUẬT TOÁN
Thuật toán
vẽ đường
Ellipse

Do tính đối xứng qua trục tọa dộ


nên chỉ cần vẽ 1/4 ellipse, rồi lấy
đối xứng qua trục tọa độ

Tại mỗi bước ta cho x tăng từ 0 đến


a sau đó tính y
Vẽ góc phần tư rồi lấy đối xứng qua trục X, trục Y

Ta chọn điểm Q là tiếp điểm của tiếp Thuật toán


tuyến Ellipse có độ dốc (hệ số góc) m=-1 vẽ đường
Ellipse
Ta chia ellipse thành 2 phần: Phần 1 từ A(0,b) đến
Q(x0,y0); Phần 2 từ Q(x0,y0) đến B (a,0)
PHÂN TÍCH VẼ ĐƯỜNG ELLIPSE - THUẬT TOÁN
BRESENHAM

Vẽ phần 1 của Ellipse từ (0,b) đến Q(x0,y0):


Giả sử tại bước i ta vẽ được điểm (xi, yi)
Tại bước i+1 phải xác định điểm kế tiếp (xi+1 , yi +1)
đó là điểm P(xi +1,yi ) hoặc S(xi +1,yi -1)
Xác định điểm kế tiếp phụ thuộc vào
d1 và d2
PHÂN TÍCH VẼ ĐƯỜNG ELLIPSE - THUẬT TOÁN
BRESENHAM
Vì điểm K(𝑥𝑖 + 1, 𝑦)
thuộc đường ellipse nên ta có :
𝑏2 𝑥𝑖 2 +1 2
y2 = b2 -
𝑎2

Gọi:
𝑏2
d1 = yi2 – y2 = yi2 + 2 (𝑥𝑖 + 1)2 − 𝑏 2
𝑎

2 𝑏2 2
d2 = y2 – 𝑦𝑖 − 1 = − 2 𝑥𝑖 + 1 + 𝑏 2 − 𝑦𝑖 − 1 2
𝑎

Xác định điểm kế tiếp phụ thuộc vào d1 và d2 :


Nếu 𝑑1 − 𝑑2 < 0 thì K gần P nên chọn P
Nếu 𝑑1 − 𝑑2 ≥ 0 thì K gần S nên chọn S
PHÂN TÍCH VẼ ĐƯỜNG ELLIPSE - THUẬT TOÁN
BRESENHAM
Từ đó ta có công thức tìm điểm

𝑏2 2 2 2
𝑝𝑖 = 𝑑1 − 𝑑2 = 2. 2 . 𝑥𝑖 + 1 − 𝑏 + 2 𝑦𝑖 − 𝑦𝑖 + 1
𝑎
𝑏2 2
𝑝𝑖+1 = 2. 2 . 𝑥𝑖+1 + 1 2 − 𝑏 2 + 2 𝑦𝑖+1 − 𝑦𝑖+1 + 1
𝑎

Suy ra :
𝑏2 2
𝑝𝑖+1 − 𝑝𝑖 = 2. 2 𝑥𝑖+1 + 1 2
− 𝑥𝑖 + 1 2
+ 2 𝑦𝑖+1 − 𝑦𝑖2 + 𝑦𝑖 − 𝑦𝑖+1
𝑎
PHÂN TÍCH VẼ ĐƯỜNG ELLIPSE - THUẬT TOÁN
BRESENHAM
𝑏2 2
𝑝𝑖+1 − 𝑝𝑖 = 2. 2 𝑥𝑖+1 + 1 2
− 𝑥𝑖 + 1 2
+ 2 𝑦𝑖+1 − 𝑦𝑖2 + 𝑦𝑖 − 𝑦𝑖+1
𝑎

Nếu 𝑝𝑖 < 0 tức 𝑑1 < 𝑑2 thì chọn điểm 𝑃(𝑥𝑖 + 1, 𝑦𝑖 )


𝑏2
Suy ra: 𝑝𝑖+1 = 𝑝𝑖 + 2. 2 (2𝑥𝑖 + 3)
𝑎
Nếu Pi ≥0 , tức d1 ≥ d2 thì chọn điểm 𝑃(𝑥𝑖 + 1, 𝑦𝑖 − 1),
𝑏2
Suy ra: 𝑝𝑖+1 = 𝑝𝑖 + 2. 2 2𝑥𝑖 + 3 − 4𝑦𝑖 + 4
𝑎
Với điểm đầu tiên (0,b):
𝑏2
𝑝1 = 2. 2 − 2𝑏 + 1
𝑎
PHÂN TÍCH VẼ ĐƯỜNG ELLIPSE - THUẬT TOÁN
BRESENHAM

Vẽ phần thứ 2 của hình ellipse

Dể vẽ phần 2 ta chỉ cần thay đổi vai trò :

+ của x và y
+ của A và B
LƯU ĐỒ
Bắt đầu • Input:
• Tâm đường Ellipse tâm(xc,yc)
x = 0; y = b; • a, b
𝑝 = 𝑎2 1 − 2𝑏 + 𝑏 2 ;
𝑥0 = 𝑎2 / 𝑎2 + 𝑏 2
• Output: đường Ellipse – phần 1: từ (0,b) đến Q
Vẽ 4 điểm tâm C;

No
𝑥 < 𝑥0
Yes
No (chọn điểm S)
𝑝<0
Yes (chọn điểm P)
𝑝 += 2𝑏 2 2𝑥 + 3 + 4𝑎2 (1 − 𝑦)
𝑝 += 2𝑏 2 (2𝑥 + 3)
y--;

x = x + 1;
Kết thúc
Vẽ 4 điểm tâm C;
Bắt đầu

x = 0; y = b;
𝑝 = 𝑎2 1 − 2𝑏 + 𝑏 2 ;
𝑥0 = 𝑎2 / 𝑎2 + 𝑏 2
Vẽ 4 điểm tâm C;

No
𝑥 < 𝑥0
Yes
No (chọn điểm S)
𝑝<0
Yes (chọn điểm P)
𝑝 += 2𝑏 2 2𝑥 + 3 + 4𝑎2 (1 − 𝑦)
𝑝 += 2𝑏 2 (2𝑥 + 3)
y--;

x = x + 1;
Kết thúc
Vẽ 4 điểm tâm C;
Nguồn tài nguyên Miễn phí
Hãy sử dụng những biểu tượng và hình minh họa miễn phí có thể thay
màu này trong thiết kế Canva của bạn.
Nguồn tài nguyên Miễn phí
Hãy sử dụng những biểu tượng và hình minh họa miễn phí có thể thay
màu này trong thiết kế Canva của bạn.

You might also like