کامپیوتر و IT و اینترنتعلوم مهندسی

الگوریتم های ترسیم خط

صفحه 1:
الگوریتم های ترسیم خط در این مبحث ابتدا در باره اصول ومبانی خط بحث می شود سپس دو الگوریتم 20069) و 20ه9۳) مورد بررسی قرار می گیرند

صفحه 2:
مباحث ابندایی خط y=m-x+b m= Yond 0 Xend™ % 1- [6- 6

صفحه 3:

صفحه 4:

صفحه 5:
1b gm ‏كردن‎ loa ‏؟‎ ‎_ 5; 2S m= =~ 7-2 9 b=2- 342m ۵ 6 ۵ ‏م و و‎ * 5 5 ‏دن مق لا متناظر‎ ag Peto‘? yg 5. 5.5 ‏اكير‎ 2 4+2 - ِ 3 4 _.4 2 12? 5) =2 544-34 -3 (0100 5 KO) 5 Ors 4.

صفحه 6:
oe 5 sss. 33s or 5 ‏پیب‎ 0 a ss مباحث ابندایی خط

صفحه 7:
الگوریتم های رسم خط ؟ در این مبحث دو الگوریتم رسم معرفی وبررسی می شوند 000 a Oerseckaw 1

صفحه 8:
الگوریتم 000 گام افزایش ن دو ۳۳ در مرحله بعدی که باید یک ارا انتخاب کنیم کاس اجان دارد؟

صفحه 9:
الگوریتم 000 هنگامی که شیب بین ۱و۱- است به مختصات ۶ یک واحد یک واحد و مختصات /براسا س فرمول زیر افزایش می یابد Vie 7 (4,41, round(y,+m)) Ge Yd > & +L ym) ۵ round(y,))

صفحه 10:
الگوریتم 000 هنگامی که شیب بین ۱و۱-نیست به مختصات ۷ یک واحد یک واحد و مختصات براسا س فرمول زیر افزایش مى يابد 1 ‏وب‎ 22 m (round(%,+ yn), Yet 1) 5 5 ‏جية)‎ Vow Ket D @ound(y), Yi)

صفحه 11:
الگوریتم 000 vert har DCD (ty, by vb) { et deeb fet pb et ses, hy Poa hecrewen, Verret Plot x0, PV ۳) (< ‏رس‎ (( ‏زاس سرت‎ ‏تس‎ ‏(بهاسدعسسد‎ ‏0ك‎ ‏)ریس سار‎ ‏)مت‎ RODD (x), 0000): ۳-0 ‏سسکا‎ +( { ‏سس عبر‎ VAS Verret setPrel( RODDO(x), ROODO()));

صفحه 12:
Bresedkaw eX 95! © Ondport Lice Okprikkw ® Oevision variable d=HM) 1 =H x+Ly,+3 =dx,+1+ y+ Bd>O : chose OC ‏وت‎ +2 Ip #5 ‎se ۶ 1‏ : 0 <> ل ۲ = ره : +2 ود سره 5 ‎ ‎+ ‎ ‎ ‎ ‎2

صفحه 13:
Bresedkaw eX 95! ل ا 35 00 ‏دور + (ا+ ميهد‎ + Prony anes ~ Ax, y) =Aax+ by+ 0 ~ d=2at+b ® Opked X++, if d>0, then] y++ if d<=0, then |*"”’ mem a cha: =Aa+D

صفحه 14:
الكوريتم محا 6 ( ۱,۱۱ ما0 امن { ‏اور‎ ‎take, hr, READ, ADO, ox, V5 PB (dl> x2) { @revertonn( x, YO, xf, vA); مر زر

صفحه 15:
Qerscdkaw ps 95! زب * © د هس ‎+h Ot de ۱‏ ابرح بر ‎Por (= al; <= x) t+)‏ { )1 اسهم (0 > ب) و ۴ هم عدو

الگوریتم های ترسیم خط در این مبحث ابتدا در باره اصول ومبانی خط بحث می شود سپس دو الگوریتم DDAو Bresenhamمورد بررسی قرار می گیرند 1 مباحث ابتدایی خط y y mx  b yend where: y0 2 x0 xend x yend  y0 m xend  x0 b  y0  mx0 مباحث ابتدایی خط 3 مباحث ابتدایی خط y (7, 5) 5 2 4 y = mx + b y b x (2, 2) 2 yend  y0 m xend  x0 7 x m b  y0  mx0 ابتدا پیدا کردن mو : b )(7, 5 5 2 3 ‏m ‏ 7 2 5 3 4 ‏b 2  2  ‏x 5 5 7 برای هر مقدار xپیدا کردن مقدار yمتناظر 3 4 1 ‏y(4)  4 3 5 5 5 3 4 2 ‏y(6)  6 4 5 5 5 ‏y 5 2 )(2, 2 2 3 4 5 6 3 4 3 ‏y(3)  3 2 5 5 5 3 4 4 ‏y(5)  5 3 5 5 5 5 مباحث ابتدایی خط 3 ‏y(3) 2 3 5 1 ‏y(4) 3 3 5 4 ‏y(5) 3 4 5 2 ‏y(6) 4 4 5 7 6 5 4 3 2 1 0 2 3 4 5 6 7 8 1 0 6 الگوریتم های رسم خط در این مبحث دو الگوریتم رسم معرفی وبررسی می شوند .i ‏DDA .ii ‏Bersenham 7 الگوریتم DDA منظور از گام افزایش یعنی بین دو pixelدر مرحله بعدی که بای00د ی00ک pixelرا انتخ00اب ک00نیم کدام یک شانس انتخاب دارد ؟ 8 الگوریتم DDA هنگامی که شیب بین 1و -1است به مختصات xیک واحد یک واحد و مختصات yبراسا س فرمول زیر افزایش می یابد ‏yk1  yk  m ))(xk+1, round(yk+m )(xk+1, yk+m ))(xk, round(yk ) (x k , y k 9 الگوریتم DDA هنگامی که شیب بین 1و -1نیست به مختصات yیک واحد یک واحد و مختصات xبراسا س فرمول زیر افزایش می یابد 1 ‏m ‏xk1  xk  )(round(xk+ 1/m), yk+1 )(xk+ 1/m, yk+1 )(round(xk), yk ) (x k , y k 10 DDA الگوریتم void line DDA(int xa, int ya, int xb, int yb) { int dx=xb-xa; int dy=yb-ya; int steps, k; float xIncrement, yIncrement; float x=xa, y=ya; if(abs(dx)>abs(dy)) steps=abs(dx); else steps=abs(dy); xIncrement=dx/(float)steps; yIncrement=dy/(float)steps; setPixel(ROUND(x), ROUND(y)); for(k=0; k<steps; k++) { x += xIncrement; y += yIncrement; setPixel(ROUND(x), ROUND(y)); } } 11 Bresenham الگوریتم  Midpoint Line Algorithm  Decision variable d FM NE 1  F xp  1, yp   2   1  axp  1 b yp    c 2  d > 0 : choose NE 3   dnew F xp  2, yp     12 Q 2 d <= 0 : choose E 1   dnew F xp  2, yp    2 M P(xp, yp) E : dnew= dold+a+b : dnew= dold+a Bresenham الگوریتم  Initial Value of d 1 1   F x0  1, y0   ax0  1 b y0    c 2 2   1 Fx0, y0  a  b 2  F x, y 2ax  by  c  d 2a  b  13 Update d  x  ,  if d  0, then  y  , d 2a  b   x  , if d 0, then  d 2a Bersenham الگوریتم void Bresenham(int x1, int y1, int x2, int y2) { int slope; int dx, dy, incE, incNE, d, x, y; if (x1 > x2) { Bresenham(x2, y2, x1, y1); return; } dx = x2 - x1; dy = y2 - y1; if (dy < 0) { slope = -1; dy = -dy; } else { slope = 1; } ادامه در صفحه بعد 14 Bersenham الگوریتم // Bresenham constants incE = 2 * dy; incNE = 2 * dy - 2 * dx; d = 2 * dy - dx; y = y1; for (x = x1; x <= x2; x++) { putpixel(x, y); if (d <= 0) { d += incE; } else { d += incNE; y += slope; } } } 15

62,000 تومان