-
تشخیص برخورد دو shape
دو تا shape روی فرم هست که یکیش دایره و یکیش مربعه. اون که دایره س کاربر میتونه با دکمه های w s a d حرکت میده. میخوام اگه دایره حرکت داده شد و اومد روی مربع ... رنگ مربع عوض بشه.
یعنی برنامه بنویسم که تشخیص بده این دو تا به هم برخورد کردن.
با مقدار location و left و top که فک نکنم بشه :10:
-
سلام.
کد:
private void button1_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show(func(ellipse1, ellipse2).ToString());
}
int func(Ellipse c1, Ellipse c2)
{
int a = (int)Math.Abs(c1.Margin.Left - c2.Margin.Left); //ABS:قدرمطلق
int b = (int)Math.Abs(c1.Margin.Top - c2.Margin.Top);
int r = (int)Math.Sqrt(Math.Pow(a , 2) + Math.Pow(b , 2));
int c1R = (int)ellipse1.Width / 2, c2R = (int)ellipse1.Width / 2;
if (r <= (int)Math.Abs(c1R + c2R))
return (1); //برخورد کرده
else
return (0);
}
با wpf هستش که Ellips داره.