در ابتدا میخوام از کرونا ویروس که باعث شد کارا دور کاری بشه و دانشگاه ها تعطیل بشن و برن سمت آموزش مجازی تشکر ویژه ای بکنم که باعث شد خانه نشین بشیم و بتونیم کمی برای دل خودمان کد بزنیم. خب از کجا شروع کنیم؟ ؟ ! آهان یادم اومد: ) گوشیم زنگ خورد و رفتم جواب دادم امین پشت خط بود: امین: سلام. من: هلو امین. امین: آراز استاد امدادی درس گذاشته و چند تایی مشق! من: مشق؟ ؟ ! مطمینی؟ ؟ ؟ امین: آره بابا. من: خب حالا چی هست؟ امین: الگوریتم DDA و یدونه هم هست برکنهام! من: مطمینی برکنهام؟ یوخت برزنهام نباشه: ) امین: اره همون که گفتی (با خنده) من: خب بشین بنویس به منم بفرست. من: راستی تا کی وقت داریم اصن؟ ؟ امین: جمعه. من: اوووووو کو تا جمعه بشین بنویس به منم بفرست من یخورده کار دارم. امین: باشه. شبش امین پیام داد که: امین: نوشتم آمادس ولی خط شده. من: لعنتی مگه با چی نوشتی که شده خط! امین: با سی پلاس پلاس. من: کار میکنه حالا. امین: نه غلط غلوط. من: پس بیخیال وللش کن. امین باشه. گذشت و گذشت آن جمعه آمد و رفت ما متاسفانه امتیاز این مرحله رو از دست دادیم رفت شد مهر تو همین ویرگول یه نوشته ای دیدم با عنوان نظرمو جذب کرد گفتم ببینم چیه که دیدم ای دل غافل داره رسم خط تو پایتون رو یاد میده گفت خب این که عالیه همین فردا DDA رو با این پیاده سازیش میکنم و میفرستم برا استاد البته اگه قبول کنه; ) خب بریم سراغ پیاده سازیش. من کاری با نصب و ادد کردنش ندارم چرا که دوستمون آقای وکیلی در مقاله خودشون توضیح دادن پس توصیه میکنم اول کاری برین سراغ مقاله خب اولین کاری که باید بکنیم اینه که مقادیر ( x , x , y , y ) رو از کاربر بگیریم: حالا میریم سراغ محاسبه شیب یا همون m که طبق فرمول باید بگیم: m = Delta Y / Delta X کدی هم که من نوشتم برای محاسبش بدین شکل: خب حالا باید یه شرط بزاریم که اگر m بزرگتر از یک بود y ها ثابت حرکت کنند و x ها طبق فرمول زیر: x = x + ( / m ) اگرم که m کوچکتر از یک بود x ها ثابت حرکت میکنند و y ها طبق فرمول زیر: y = y + m مابقی ماجرام که میدونین جدول بکش و اعداد رو روند بکن و نمودار بکش خب اینم از این بخش که یه توضیح مختصری بدم خدمتتون که برنامه بعد از if داره x ها رو که ثابت حرکت میکنند رو تو یک لیست (میتونین آرایه هم درنظر بگیرید) ذخیره میکنه و در بخش دوم هم دار با فرمول و اینا y رو محاسبه میکنه اون Len _ X _ K رو هم برای اینکه بتونم طول لیست رو بگیرم و ازش استفاده بکنم نوشتم همین الان جدول x و y های ما آمادس فقط کافیه اینارو تو نمودار رسم کنیم اینجاست که کتابخانه bokeh به کمک ما میاد. در ابتدا اینو بگم که نمودار ما قراره در یک فایل html ذخیره بشه حالا چرا html دیگه اینو باید از دوستانی که bokeh رو ساختن بپرسین پس در خط اول یک فایل با نام DDA lines درست میکنه و نمودار ما رو در اون قرار میده. خط دوم در بالای نمودار یک عنوان مینویسه و در پایین محور x ها x رو قرار میده و در محور y ها y رو قرار میده تا ما دچار سردرگمی نشیم نوشتنش اختیاریه ولی بهتره بنویسیمش. خط سوم اولین عنصر بیان کننده مقادیر محور x هاس عنصر دوم مقادیر y هاس عنصر سوم رو نمیدونم چیه و دستم بهش نزدم عنصر چهارم اندازه ی خط که همون خووبه بنظر من. و در خط آخر هم بعد از رسم و ذخیره کردن اون در فایل html بلافاصله اون رو نمایش میده. همین با موفقیت ما الگوریتم DDA رو پیاده اش کردیم. دوستانیم که مثل خود من دنبال لقمه آماده و حاضرند میتونن از گیتهاب من فایل های پروژه رو دریافت کنن. در آخر سر هم اگر استاد این متن رو دیدین بدونین که اصلا انتظار نمره ای ندارم هدفم از آوردن اسمتون این بود که بدونین واقعا کار کردم و درس رو یاد گرفتم.