PDA

View Full Version : چرخش چندين خط و نقطه



Reza,M
پنج شنبه 12 آبان 1390, 18:52 عصر
با سلام
دوستان من براي چرخش يك خط از فرمول زير استفاده ميكنم


'g.DrawLine(Pens.Black, x1, y1, x2, y2) رسم خط
'radian = (10 * 3.1415) / 180 تبديل درجه به راديان
'x3 = x1 + (x2 - x1) * Cos(radian) - (y2 - y1) * Sin(radian) X تغيير مختصات
'y3 = y1 + (x2 - x1) * Sin(radian) + (y2 - y1) * Cos(radian) Y تغيير مختصات
'g.DrawLine(Pens.Black, x1, y1, x3, y3) رسم خط جديد
'x2 = x3
'y2 = y3

حال اگه بخوام چندين خط را بچرخونم به جه صورت بايد عمل كرد ؟ :ناراحت:
مثل اگه نمونه زير را بخوام 10 درجه به چپ و يا به راست بچرخونم ؟ :عصبانی++:

Reza,M
شنبه 14 آبان 1390, 00:15 صبح
دوستان نظري ندارند؟ :متفکر:

Reza,M
یک شنبه 15 آبان 1390, 00:52 صبح
يعني هيچ كس تو اين زمينه كار نكرده ؟
بابا يه نظري حرفي پيشنهادي سوالي جوابي . . .

iman_Delphi7
دوشنبه 16 آبان 1390, 13:05 عصر
با سلام.
با این روش شما می تونین یه خط رو حول یکی از نقاط آغازین یا پایانیش بچرخونین. مثل عقربه های ساعت که حول مرکز ساعت می چرخن. چرخاندن چند تا خط هم می تونه به همین صورت انجام بشه ولی وقتی این چند تا خط به هم وابسته باشن و تشکیل یه شکل رو بدن، مثل شکلی که شما تو برنامتون گذاشتین، اونوقت بحث فرق می کنه و دیگه نمی شه با چرخش هر خط حول یکی از نقاطش به جواب رسید. یه موضوع مهم اینه که شما می خواین شکل رو حول کدوم نقطه بچرخونین. مسلما یه نقطه وجود داره مثلا مرکز شکل در غیر این صورت چرخش شکل اصلا معنی نداره. اسم این نقطه رو می ذاریم مرکز دوران. برای این کار باید هر نقطه رو حول مرکز دوران با زاویه مورد نظر بچرخونین (با همون کدی که تو پست اول گذاشتین) و بعد شکل رو با این نقاط جدید رسم کنین.
موفق باشین.

Reza,M
دوشنبه 16 آبان 1390, 23:38 عصر
با سلام.
با این روش شما می تونین یه خط رو حول یکی از نقاط آغازین یا پایانیش بچرخونین. مثل عقربه های ساعت که حول مرکز ساعت می چرخن. چرخاندن چند تا خط هم می تونه به همین صورت انجام بشه ولی وقتی این چند تا خط به هم وابسته باشن و تشکیل یه شکل رو بدن، مثل شکلی که شما تو برنامتون گذاشتین، اونوقت بحث فرق می کنه و دیگه نمی شه با چرخش هر خط حول یکی از نقاطش به جواب رسید. یه موضوع مهم اینه که شما می خواین شکل رو حول کدوم نقطه بچرخونین. مسلما یه نقطه وجود داره مثلا مرکز شکل در غیر این صورت چرخش شکل اصلا معنی نداره. اسم این نقطه رو می ذاریم مرکز دوران. برای این کار باید هر نقطه رو حول مرکز دوران با زاویه مورد نظر بچرخونین (با همون کدی که تو پست اول گذاشتین) و بعد شکل رو با این نقاط جدید رسم کنین.
موفق باشین.
دوست عزيز ميشه يه مثال بزنيد؟

Reza,M
چهارشنبه 18 آبان 1390, 00:33 صبح
Help me :ناراحت:

iman_Delphi7
پنج شنبه 19 آبان 1390, 00:06 صبح
سلام.
مثال که می شه همین شکلی که خودتون گذاشتین.
من شکل رو تو پیوست گذاشتم. 77671
مثلا یه نقطه از شکل رو به عنوان مرکز دوران در نظر گرفتم. یعنی همون نقطه وسط تصویر که با رنگ قرمز و آبی مشخص کردم. حالا این می شه همون نقطه X1 و Y1 که تو پست اول گفتین. حالا هر نقطه از شکل شما می شه یه X2 و Y2 که بهید طبق زاویه مورد نظر بچرخونینش. یعنی X3 و Y3 رو طبق فرمول خودتون بدست بیارین. اگه برای تمام نقاط شکلتون همین کارو بکنین در نهایت شما نقاط جدیدی دارین که از چرخش نقاط قبلی بدست اومدن و می تونین با اونا شکل جدید رو رسم کنین. فکر می کنم توضیحات کامل باشه. موفق باشین.