Siêu thị PDFTải ngay đi em, trời tối mất

Thư viện tri thức trực tuyến

Kho tài liệu với 50,000+ tài liệu học thuật

© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Thuật toán vẽ đường tròn trong lập trình
MIỄN PHÍ
Số trang
28
Kích thước
169.6 KB
Định dạng
PDF
Lượt xem
1320

Thuật toán vẽ đường tròn trong lập trình

Nội dung xem thử

Mô tả chi tiết

I.Thuật toán vẽ đường tròn

Phương trình đường tròn có dạng:

(x-xc)2 + (y-yc)2 = r2

Pt đường tròn có tâm ở gốc tọa độ:

x2+y2 =r2

Do tính đối xứng của đường tròn nên ta chỉ

cần vẽ cung ¼ hoặc 1/8

void put8pixel(int xc, int yc, int x, int y)

{

putpixel(x+xc, y+yc, color);

putpixel(y+xc, x+yc, color);

putpixel(y+xc, -x+yc, color);

putpixel(x+xc, -y+yc, color);

putpixel(-x+xc, -y+yc, color);

putpixel(-y+xc, -x+yc, color);

putpixel(-y+xc, x+yc, color);

putpixel(-x+xc, y+yc, color);

}

1.Thuật toán Bresenham

1

Giả sử tại bước i đã vẽ được điểm (xi,yi)

Điểm cần vẽ kế tiếp (xi+1, yi+1) là:

(xi +1, yi) hay (xi +1, yi -1)

Giá trị y thực sự thuộc đường tròn ứng với xi là:

y2 = r2 – (xi +1)2

Gọi d1 = yi2 – y2 = yi2 –r2 +(xi +1)2

d2= y2 - (yi -1)2 = r2 – (xi +1)2 – (yi -1)2

Pi = d1-d2 = yi2 – r2 +(xi +1)2 –r2 + (xi +1)2 +(yi-1)2

= 2(xi +1)2 + yi2 +(yi -1)2 -2r2

Pi+1 – pi = 2(xi+1 +1)2 + yi+12 + (yi+1 -1)2 – 2r2 – 2(xi +1)2

– yi2 – (yi -1)2 + 2r2

= 4xi + 6 + 2(yi+12 – yi2) -2(yi+1-yi)

 Pi+1 = pi+4xi + 6 + 2(yi+12 – yi2) -2(yi+1-yi)

Vậy:

+ nếu pi < 0 thì yi+1 = yi, khi đó pi+1 = pi+4xi+6

+Nếu pi >= thì yi+1 = yi-1, khi đó pi+1 = pi + 4(xi-yi)+10

Giá trị pi tại điểm đầu tiên (x1,y1) = (0,r) là:

P1 = 2+r2+(r-1)2 – 2r2=3-2r

void CircleBres(int xc, int yc, int r)

2

Tải ngay đi em, còn do dự, trời tối mất!