الگوریتم های ترسیم خط
اسلاید 1: الگوریتم های ترسیم خط در این مبحث ابتدا در باره اصول ومبانی خط بحث می شود سپس دو الگوریتم DDA و Bresenham مورد بررسی قرار می گیرند1
اسلاید 2: مباحث ابتدایی خط 2xyy0yendxendx0where:
اسلاید 3: مباحث ابتدایی خط3m = 0m = -1/3m = -1/2m = -1m = -2m = -4m = ∞m = 1/3m = 1/2m = 1m = 2m = 4m = 0
اسلاید 4: مباحث ابتدایی خط4xy(2, 2)(7, 5)2725y = mx + b
اسلاید 5: 5xy(2, 2)(7, 5)23456725ابتدا پیدا کردن m و b :برای هر مقدار x پیدا کردن مقدار y متناظر
اسلاید 6: مباحث ابتدایی خط601234567801234567
اسلاید 7: الگوریتم های رسم خط7در این مبحث دو الگوریتم رسم معرفی وبررسی می شوندDDABersenham
اسلاید 8: الگوریتم DDAمنظور از گام افزایشیعنی بین دو pixel در مرحله بعدی که باید یک pixelرا انتخاب کنیم کدام یک شانس انتخاب دارد ؟8
اسلاید 9: 9(xk, yk)(xk+1, yk+m)(xk, round(yk))(xk+1, round(yk+m))هنگامی که شیب بین 1و1- است به مختصات x یک واحد یک واحد و مختصات yبراسا س فرمول زیر افزایش می یابدالگوریتم DDA
اسلاید 10: 10(xk, yk)(xk+ 1/m, yk+1)(round(xk), yk)(round(xk+ 1/m), yk+1)الگوریتم DDAهنگامی که شیب بین 1و1- نیست به مختصات y یک واحد یک واحد و مختصات xبراسا س فرمول زیر افزایش می یابد
اسلاید 11: الگوریتم DDA11void 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)); }}
اسلاید 12: الگوریتم Bresenham12Midpoint Line AlgorithmDecision variabled > 0 : choose NE : dnew= dold+a+bd <= 0 : choose E : dnew= dold+aNEMQP(xp, yp)E
اسلاید 13: الگوریتم Bresenham13Initial Value of dUpdate d
اسلاید 14: الگوریتم Bersenhamvoid 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
اسلاید 15: الگوریتم 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
نقد و بررسی ها
هیچ نظری برای این پاورپوینت نوشته نشده است.