ورود

نسخه کامل مشاهده نسخه کامل : دوران بوسیله canvas



CPUSatan
12-01-2010, 22:16
بچه ها می خوام با استفاده از Canvas ودستوراتش مثل lineto و rectangle و ... یه مستطیل بکشم (canvas رو هم Image در نظر می گیریم) مه حول مرکزش بچرخه.... یعنی canvas هی پاک می شه و دوباره کشیده می شه.... مشکل دستوراتش نیست، با الگوریتم قضیه مشکل دارم.... کسی هست بتونه کمکم کنه؟

F A R H A D
15-01-2010, 01:00
اگر مشکل فقط پاک شدن هست یادمه در کتاب mastering delphi 7 در موردش مطلب نوشته شده و راه حل قرار داده شده. اگر دوستان دیگه نتونستند مشکل رو حل کنند سعی میکنم مطلب رو پیدا کنم و قرار بدم

CPUSatan
15-01-2010, 03:24
گفتم که با دلفی و دستورات دلفی از جمله پاک کردن مشکلی ندارم. مشکل من با الگوریتم چرخ. اون رو نمی دونم چجوری باید یرح کنم. خودت امتحان کنی متوجه می شی.سعی کن یک مربع رو روی canvas بچرخونی. الگوریتم این که خطها از چه نقطه ای به چه نقطای کشیده بشند (با توجه به تغییر زاویه و ...) رو نمی تونم در بیارم. با فرض این که مختصات 4 نقطه اول رو داشته باشیم. بعد از یک زاویه چرخش، مختصات 4 نقطه بعدی رو باید چجوری حساب کنیم.

F A R H A D
15-01-2010, 15:55
الگوریتم این که خطها از چه نقطه ای به چه نقطای کشیده بشند (با توجه به تغییر زاویه و ...) رو نمی تونم در بیارم
الان متوجه شدم. این مربوط میشه به متخصصان ریاضی و بیان فرمولهای مربوطه! مهم اینه که بر اساس زاویه مورد نظر، مختصات اولین نقطه رو بدست بیارید
البته یک سورس براتون پیدا کردم و نوشتم و یک فرمول.
سورس رو ضمیمه کردم
از فرمول زیر هم میتونید برای چرخوندن عکس مبدا و دیدن نتیجه در عکس مقصد استفاده کنید:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

CPUSatan
16-01-2010, 00:16
فرهاد جان ممنون از کمکت ولی این کمکی نمی کنه، بذار یه مثال برات بزنم شاید مهتر متوجه شی، ولی همونجور که حدس زدی قضیش بیشتر مربوط به ریاضی می شه....
با این فرض که این کدها داخل یک تایمر نوشته می شه و Tag تایمر رو هم بعنوان زاویه می شناسیم......



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

نگاه کن، حالا اینجا با فرض این که مختصات 4 تا نقطه اول رو داریم، زاویه Timer1.Tag زیاد می شه، با توجه به زاویه ای که داریم می خوایم مختصات جدید این 4 تا نقطه رو داشته باشیم.