slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
الگوریتم های ترسیم خط PowerPoint Presentation
Download Presentation
الگوریتم های ترسیم خط

Loading in 2 Seconds...

play fullscreen
1 / 8

الگوریتم های ترسیم خط - PowerPoint PPT Presentation


  • 219 Views
  • Uploaded on

گرافیک رایانه ای. الگوریتم های ترسیم خط. گردآوری: مهندس رضا فهیمی. به راستی خطوط چگونه در کامپیوتر ترسیم می شوند؟.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'الگوریتم های ترسیم خط' - alanna


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide2
به راستی خطوط چگونه در کامپیوتر ترسیم می شوند؟
  • همانطور که در تصویر مشاهده می شود برای ترسیم یک خط بایستی پیکسل های مرتبط در صفحه نمایش رنگ شوند حال برای انتخاب پیکسل های مناسب الگوریتم های متعددی در دنیای کامپیوتر وجود دارد که به 2 الگوریتم DDA و برسنهایم اشاره می شود:
digital differential analyzer dda
(Digital Differential Analyzer) DDA الگوریتم
  • برای ترسیم یک خط نقطه ابتدایی و انتهایی خط را در نظر می گیریم:

(x0, y0) , (x1, y1)

  • نقطه ابتدایی را رنگ می کنیم (محاسبات براساس نزدیک ترین نقطه با عدد صحیح می باشد و در صورت لزوم عدد را گرد می کنیم)
  • فرض کنید x1-x0 > y1-y0 (یعنی شیب خط کوچکتر از 1 است)

در صورت وجود فرض بالا برای محاسبه و ترسیم خط بایستی x1-x0 گام را طی کنیم (گام خط)

  • در این مرحله x=x0, y=y0 را قرار می دهیم.
  • در هر مرحله

x را به اندازه یک واحد افزایش می دهیم ((x1-x0)/numsteps )

y را به اندازه شیب خط افزایش می دهیم ((y1-y0)/numsteps )

  • در پایان اعداد هر مرحله را به نزدیکترین عدد صحیح x و y گرد کرده و رنگ می کنیم.
slide4
تابع نمونه برای الگوریتم DDA

// با فرض ملایم بودن شیب خط

DDA(float x0, float x1, float y0, float y1) {

float x, y;

float xinc, yinc;

int numsteps;

numsteps = Round(x1) – Round(x0);

xinc = (x1 – x0) / numsteps;

yinc = (y1 – y0) / numsteps;

x = x0;

y = y0;

ColorPixel(Round(x),Round(y));

for (int i=0; i<numsteps; i++) {

x += xinc;

y += yinc;

ColorPixel(Round(x),Round(y));

}

}

slide5
DDA مثال برای الگوریتم
  • مطلوب است ترسیم خطی با نقاط ابتدائی و انتهائی (2,3) و (12,8)از طریق الگوریتم DDA.
  • حل: برای این منظور بایستی ابتدا گام حل مسئله محاسبه شود با توجه به اینکه x2-x1>y2-1 می باشد داریم:
  • گام مسئله = x2-x1=12 – 2 = 10
  • xinc = 10/10 = 1.0
  • yinc = 5/10 = 0.5

کلیه محاسبات در جدول مقابل دیده می شود

yافزایش

xافزایش

همانطوری که مشاهده شد عملیات ترسیم خط به روش DDAصورت گرفت ولی محاسبات اعشاری و گرد کردن اعداد به نزدیکترین نقطه برای سیستم محاسباتی وقت گیر است.

bresenham s
Bresenham’s الگوریتم

اساس کار این الگوریتم محاسبه فاصله بین مختصات y واقعی و نقاط y بالائی و پائینی می باشد (در این روش محاسبات براساس اعداد صحیح و شیب خط نیز ملایم فرض می شود.

dupper

dlower

slide7
فرض کنید که شیب خط با ملایمت از سمت چپ آغاز می شود. (یعنی نقطه ابتدائی سمت چپ قراردارد) نقطه ابتدائی را رنگ می کنیم و در مرحله بعد برای هر مقدار x بایستی مقدار y یا y+1 را محاسبه کنیم.
  • نقطه ابتدائی (x0,y0) را رنگ می کنیم.
  • مقادیر dx و dy و 2dy و 2dy - 2dxرا محاسبه می کنیم.
  • برای محاسبه نقطه بعدی فرمول زیر را به عنوان فرمول تصمیم p0 در نظر می گیریم:

p0 = 2dy – dx

اگر pk<0 نقطه بعدی (xk + 1,yk)خواهد بود و فرمول نقطه تصمیم pk+1 = pk + 2dyمی باشد.

در غیر این صورت نقطه بعدی (xk + 1, yk + 1) و نقطه تصمیم pk+1 = pk + 2dy – 2dxخواهد بود.

لازم به ذکر است که K در هر مرحله از صفر شروع خواهد شد.

4. مراحل فوق را dx بار تکرار می کنیم.

توجه :

در صورتی که شیب خط منفی باشد نقش x و yتغییر خواهد کرد.

bresenham s1
مثال برای الگوریتم Bresenham’s

مطلوب است ترسیم خطی با نقاط ابتدایی و انتهایی (2,3) و (12,8) از طریق الگوریتم برسنهام.

حل : ابتدا مقادیر زیر را آماده و تابع تصمیم را نیز برای هر مرحله محاسبه می کنیم اعداد و ارقام در جدول مقابل مشاهده می شود.

dx = 12 – 2 = 10

dy = 8 – 3 = 5

p0 = 2dy – dx = 15

2dy = 10

2dy – 2dx = -10

پایان

rezafahimi@yahoo.com