موقعیت کرسر ماوس در دایره
می دانیم در رویداد MouseMove یا نظیر آن با دستور e.x یا e.y موقعیت کرسر ماوس بدست می آید.فرض کنیم با دستورات وتوابع گرافیکی یک دایره یا بیضی برروی فرم رسم می کنیم
Graphics g;
System.Drawing.Pen p = new Pen(Color.Blue);
g.DrawEllipse(p, 100, 200, 300, 300);
چگونه میشود بررسی کرد که کرسر ماوس در محیط بیضی یا دایره رسم شده قرار دارد؟(اگر شکل ترسیمی مستطیل باشد با کد زیر می توان بررسی کرد که آیا کرسر داخل محیط مستطیل قرار دارد یا نه؟
g.DrawRectangle (p,100,100,300,300);
if(e.X>100 && e.X <400 && e.Y >100 && e.Y <400)
//Do what You Want
سوال:چگونه بررسی کنیم که کرسر ماوس داخل محیط بیضی یا دایره قرار دارد؟
نقل قول: موقعیت کرسر ماوس در دایره
سلام دوست عزیز
درباره HotSpot جستجو کنید...
نقل قول: موقعیت کرسر ماوس در دایره
نقل قول:
نوشته شده توسط
sajjadlove
سلام دوست عزیز
درباره HotSpot جستجو کنید...
رفتم دنبالش چیزی دستگیرم نشد.اگه ممکنه خودتون زحمتشو بکشید
نقل قول: موقعیت کرسر ماوس در دایره
1 ضمیمه
نقل قول: موقعیت کرسر ماوس در دایره
سلام دوست عزیز.
فایلی که ضمیمه کردم مشکلت رو حل میکنه.
نقل قول: موقعیت کرسر ماوس در دایره
چرا از یک الگوریتم در رخ داد Mouse Move استفاده نمی کنی که مقدار x , y رو بگیره و بده به معادله دایره یا بیضی اگر داخل اون این اشکال بود که ........ اگر نبود ............
نقل قول: موقعیت کرسر ماوس در دایره
نقل قول:
نوشته شده توسط
mojtaba_e
چرا از یک الگوریتم در رخ داد Mouse Move استفاده نمی کنی که مقدار x , y رو بگیره و بده به معادله دایره یا بیضی اگر داخل اون این اشکال بود که ........ اگر نبود ............
همین که فرمودی چطور میشه؟کد؟
نقل قول: موقعیت کرسر ماوس در دایره
برای دایره تابع زیر را استفاده کن
/// <summary>
/// Mouse position
/// </summary>
/// <param name="Center_X">مرکز دایره بر روی محور افقی</param>
/// <param name="Center_Y">مر کز دایره بر روی محور عمودی</param>
/// <param name="Mouse_X">مکان موس بر روی محور افقی</param>
/// <param name="Mouse_Y">مکان موس بر روی محور عمودی</param>
/// <param name="Radius">شعاع دایره</param>
/// <returns>اگر صحیح باشد یعنی موس درون دایره قرار دارد</returns>
public Boolean Test(int Center_X, int Center_Y, int Mouse_X, int Mouse_Y, int Radius)
{
int Result;
Result = ((Center_X - Mouse_X) ^ 2 + (Center_Y - Mouse_Y) ^ 2);
if (Result <= Radius)
{
//mouse in circle
return true;
}
else
{
//mouse out circle
return false;
}
}
*************************************************
و برای بیضی هم معادلش رو دقیقا نمی دونم چیه