ايران ويج

نسخه‌ی کامل: الگوریتم برزنهام برای m های بزرگتر از یک
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام
ببخشید میشه بگید الگوریتم برزنهام چطور برای m های بزرگتر از یک حساب میشه ؟
برای mهای بین صفر تا یک الگوریتمش رو دارم اما الگوریتم برای بزرگتر از یک رو میخوام
ممنون میشم راهنماییم کنید
برای مطالعه دقیق تر در مورد این الگوریتم می توانید به لینک زیر مراجعه نمایید:

http://www.cs.helsinki.fi/group/goa/mall...esenh.html

همچنین برای دریافت نمونه برنامه به زبان #C به لینک زیر مراجعه نمایید :

لینک دانلود
حجم : 16.33 کیلوبایت

منبع


این یکی رو هم ببینین بد نیست.
لینک صفحه

من خودم تا حالا اسم برزنهام رو هم نشنیده بودم وگرنه کمک بیشتری می تونستم بکنم.
ممنون
اما این مواردی که گفتید رو من هم دیدم اما نمی تونم تجزیه تحلیل کنم که وقتی m بزرگتر از یک باشه رو بنویسم آخه مشکل اینجاست که تمام الگوریتم ها برای m های بین یک و صفر یا کوچکتر از یک هست
ولی باز هم ممنون
شما لطف کنید و الگوریتم برزنهام را ، مدل ریاضیش را بزاری تا من برنامش را براتون بنویسم.

چون من مدل ریاضیه این الگوریتم را نمیدونم.

از چیزی هم که آقا صادق گذاشتند چیزی سر در نیاوردم.
الگریتم برزنهام راجع به رسم خطوط توی یه صفحه شطرنجیه . (البته برای رسم دایره هم میشه تعمیمش داد)
اصل الگریتم اینه :

کد:
y = round ( m * (x - x1) + y1 )

که m همون شیب خط هست و باید بین 0 تا 1 باشه و برابر با :

کد:
(y2 - y1)/(x2 - x1)

برای اینکه الگریتم رو برای m های بزرگتر از 1 اجرا کنید جناب ویکی پدیا اینو فرمودن :

کد:
To be able to draw lines with a steeper slope, we take advantage of the fact that a steep line can be reflected across the line y=x to obtain a line with a small slope. The effect is to switch the x and y variables throughout, including switching the parameters to plot.

یعنی باید با فرض اینکه جای x و y عوض شده خط رو رسم کنید .
خیلی ممنون
یعنی توی برنامه و الگوریتم هرجا x هست بشه y و بلعکس ؟؟؟
و موارد دیگه هیچ تغییری نکنه !!!
اول تشکر میکنم از امیر خان بخاطره توضیحات و راهنمایی های مفیدشون.

خوب این کار گرافیکیه و می خواد با گرافیکه C کار کنی و بلد باشی .

که متاسفانه من بلد نیستم.
(۲۵-تير-۱۳۸۸, ۱۰:۱۵:۱۲)tk18ho نوشته است: [ -> ]خیلی ممنون
یعنی توی برنامه و الگوریتم هرجا x هست بشه y و بلعکس ؟؟؟
و موارد دیگه هیچ تغییری نکنه !!!

سلام .
خواهش می کنم.

بله . دقیقا.
توی برنامتون هر جا شیب خط بزرگتر از 1 شد ، فرض کنید x1 همون y1 هست و x2 همون y2 هست (و بلعکس)
یه منطق ریاضیاتیه دیگه . وقتی شیب خط رو نسبت به محور x میگیری بزرگتر از 1 میشه ، اگر نسبت به محور y شیب رو حساب کنی ، عدد شیب کوچکتر از 1 میشه . با این کلک میتونی از الگریتم برزنهام استفاده کنی.