PDA

View Full Version : چگونه یک تصویر را 45 یا 30 درجه می توان چرخاند؟



hedi
یک شنبه 12 آذر 1385, 21:24 عصر
من با تابع (Canvas->Rectangla(x1,y1,x2,y2 یک مستطیل رسم میکنم و بعد می خواهم این مستطیل را یکبار با زاویه 45 و یکبار با زاویه 30 درجه بچرخانم و برای هر حالت خروجی بگیرم از برنامه نویسانی که با C++ Builder کار می کنند و خواهش میکنم مرا در این مورد هر چه زودتر راهنمایی کنند.

aref_saee
یک شنبه 13 خرداد 1386, 06:45 صبح
دوست عزیز اگر با گرافیک پیکسلی آشنا باشی ، حتما میدونی که میشه قسمتی از صفحه نمایشو در یه متغیری که از نوع اشاره گر هست ذخیره کنید . میتونی از روش مذکور برای ذخیره مستطیلت استفاده کنی و تمام نقاط اونو حول یه محور بچرخونی.

مصطفی ساتکی
یک شنبه 13 خرداد 1386, 08:59 صبح
شما می تونید تو CBuilder گزینه Rotation رو سرچ کنید
شما تو این مربع مستطیل چهار نقطه دارید که این چهار نقطه رو دوران داده و سپس خطوط را دوباره رسم نمائید
اگر هم مایلی که یک canvas یا یه bitmap رو rotation بدی رابطه زیر رو بر روی کلیه پیکسل ها اعمال می کنی. موفق باشی

The following algorithm computes the new x-coordinate (x') for a point (x,y) that is rotated by angle A with respect to the coordinate-space origin.
x' = (x * cos A) - (y * sin A)

The following algorithm computes the y-coordinate (y') for a point (x,y) that is rotated by the angle A with respect to the origin.
y' = (x * sin A) + (y * cos A)

The two rotation transformations can be combined in a 2-by-2 matrix as follows.
|x' y'| == |x y| * | cos A sin A|
|-sin A cos A|

emad_67
یک شنبه 13 خرداد 1386, 09:12 صبح
تاریخ سوال رو نگاه کردید