میخوام یه برنامه بنویسم که ساعت سیستمو بگیره و به صورت عقربه ای نشون بده
میخوام یه برنامه بنویسم که ساعت سیستمو بگیره و به صورت عقربه ای نشون بده
ممنون از حسن توجه دوستان شرمندم کردید :cry:
خوب باید بگی کجاش مشکل داری؟
باید از الگوریتمهای گرافیک استفاده کنی
یعنی باید دایره رو به صورت پیکسل به پیکسل رسم کنی
البته الان الگوریتم اون دم دست ندارم هر وقت تونستم میذارم
یه کار جالب استفاده از تعریف دایره است:
دایره مجموعه نقاطیست که از مرکز آن به یک فاصله باشند.
کافیه تو تمام نقاط رو روبش کنی و اونایی رو که در فاصله مناسبی از مرکز فرضیت قرار دارند روشن کنی!!
البته این روش یه مشکلی داره و اون مقیاس بندیه که با یکم تلاش حل میشه.
برای رسم عقربهها نیاز به الگوریتم خط داری. فایل زیر پروسه رسم خط هست که مطمئنا بدردت میخوره.
برای رسم دایره هم سادهترین راه استفاده از مختصات قطبی است که مشکل محاسبه Sinو Cos مطرح میشه. و اما یک پیشنهاد:
با استفاده از Basic یک دایره رسم کن، البته با الگوریتم دایره و همه مختصات پیکسلها رو اعم از X,Y در یک فایل داده بریز.
بعد از توی اسمبلی فایل رو بخوان و پیکسها رو بر روی صفحه روشن کن. اینجوری نیازی به رسم دایره با الگوریتم دایره نداری.
چون شمایی فایل رسم دایره با بیسیک هم برات گذاشتم. فقط خودت مختصات رو هر جوری که دوست داری درون فایل بریز که بعد با اسمبلی بخونیش. راستی بهتره بصورت عددی بریزی و چون اعداد صحیح است برای هر عدد دو بایت درنظر بگیر. یعنی برای هر مختصات X,Y مجموعه 4 بایت.
ببینم چه میکنی
در برنامه رسم دایره از پست قبلی، حلقه رسم بدلیل Step خیلی پایین با سرعت کم رسم را انجام میداد که عملا نحوه رسم مشخص باشد، که سبب ریختن دادههای تکراری از مختصات میشد که اصلاح کردم. همینطور مرحله ریختن به فایل هم اضافه شد که تقریبا کامل است.