Các thuật toán trong đồ họa máy tính

THThiNganHang
ダウンロード数: 3
28
0

プレビューを生成中...

資料の内容

1 ページ

I.T h u ậ t toán v ẽ d ư ờ n g 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 V i 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); puipỉxel(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); l.Thuâc toán Bresenham 1 ThiNganHang.com

2 ページ

G iả 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 = 1-2 - (xi +1)2 G ọi d l = yi2 - y2 = yi2 -r 2 +(xi +1)2 d2= y2 - (yi -1)2 = r2 - (xi +1)2 - (yi -1)2 Pi = d l-d 2 = yi2 - r2 +(xi +1)2 -r 2 + (xi +1)2 + (y i-l)2 = 2(xi +1 )2 + yi2 +(yi -1)2 -2r2 Pi+1 - pi = 2 (x i+ l +1)2 + yi+12 + (yi+1 -1)2 - 2r2 - 2(xi +1)2 - yi2 - (yi -1)2 + 2r2 = 4xi + 6 + 2(yi+12 - y i 2 ) -2 (y i+ l-y ỉ) ^ Pi+1 = pi+4xi + 6 + 2(yi+12 - yi2) -2(yi+1-yi) V ậ y : + n ê u pi < 0 thì y i + 1 = y i , khi đó p i + 1 = p i + 4 x i + 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 (x l,y l) = (0,r) là: P1 = 2 + r2 + (r-l)2 - 2r2=3-2r void CircleBres(int xc, int yc, int r) 2 ThiNganHang.com

3 ページ

int x,y,p; x=0; y=r; p =3-2*r; while (x<=y ) { put8pixel(xc,yc,x,y); if(p<0) p+ =4*x+6; else { p+ = 4*(x-y ) +10; y - ; } X + + ; } } 2.Thuât toán Midpoint G ọi F(x,y) = x2+y2-r2, ta CÓ: F (x ,y ){< 0 nếu (x,y) nằm Irong đường tròn = 0 nếu (x,y) thuộc đường tròn >0 nếu (x,y) nằm ngoài đường tròn Chọn điểm b ắt đầu v ẽ là (0,r) G iả sử đã v ẽ được điểm (xi,yi), Đ iểm cần v ẽ k ê tiếp ( x i+ l,y i+ l) là s hay p 3 ThiNganHang.com

最初の3ページを表示しています。全文を見るには資料をダウンロードしてください。

コメント (0)

ログイン して議論に参加する

まだコメントはありません。最初のコメントを書きましょう!