View Full Version : چرخش نقاط
saed2006
شنبه 03 مهر 1389, 13:40 عصر
سلام
يك نقطه رو ميخوام حول نقطه ديگر بچرخونم
مختصات نقطه جديد رو با فرمول هاي رياضي چجوري بدست بيارم؟
syntiberium
شنبه 03 مهر 1389, 16:52 عصر
برنامش رو برات نوشتم :
57068
saed2006
یک شنبه 04 مهر 1389, 13:42 عصر
برنامش رو برات نوشتم :
57068
ممنون واقعا لطف كردي
متد من اينطوريه كه سه تا ورودي داره و يك خروجي
ورودي basepoint
point
angle
,و خروجي نقطه چرخيده شده بر اساس basepoint
راستش من نفهميدم چجوري اين متد رو از برنامه شما بيرون بيارم
private st.Pooint rotatePoint(st.Pooint basePoint, st.Pooint sourcePoint, double rotationAngle)
{
باز هم تشكر
syntiberium
یک شنبه 04 مهر 1389, 15:41 عصر
از اول توضیح می دم :
توی فرم لود :اول x1 و x2 را باهم مقایسه می کنه و هر کدوم کمتر بود از اون یکی کم می کنه و با y1 و y2 هم همینطور و مقدار آن را در i1 و i2 میریزد .
line 58 را اشتباهی نوشتم و می تونی پاکش کنی ( یه خط قبل از i1 = Math.Pow(i1,2); )
i1 و i2 را به توان 2 می رساند و سپس از جمع آن ها رادیکال می گیرد تا فاصله ی دو نقطه بدست آید و از فاصله به عنوان شعاع استفاده می شود .
نقطه ی اول یعنی همان x1 و y1 به عنوان نقطه ی وسط در نظر گرفته می شود و نقطه ی دوم دور آن می چرخد .
t1 همان 3.14 است که تقسیم بر هر عددی بشه اون عدد تعداد نقاط دایره را می سازه که در اینجا تقسیم بر 60 شده .
t2 هم مقداری است که t1 به آن اضافه می شود و باعث چرخش نقطه می شود .
وقتی t2 را به cos بدهیم x بدست می آید و اگر به sin بدهیم y بدست می آید . سپس هر دو را در فاصله ضرب می کنیم تا شعاع درست نشان داده شود و سپس با x1 و y1 آن را جمع می کنیم تا دقیقا دور نقطه ی اول بچرخد .
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.