PDA

View Full Version : مبتدی: حالات دو دايره



esmaeel_realmadrid
شنبه 16 بهمن 1389, 23:45 عصر
سلام

حالات دودايره

من مي خوام حالت بين دو دايره را تشخيص بدم كه چه وضعيتي دارند(-مماس خارج-متقاطع-مماس داخل-هم مركز)اين قطعه كد رانوشتم ولي بين حالت متقاطع و مماس داخلي تفاوت قايل نميشود و هردورا متقاطع در نظر مي گيرد به نظر شما بايد كجا را تغيير بدم تا مشكل حل شود.(تفاوت قائل شود)(دايره اول به مركز x1,y1) ) و دايره دوم به مركزx2,y2) )






int a = (Math.Abs(X1 -X2)); //ABS:قدرمطلق
int b = Math.Abs (Y1 -Y2));
int s = Convert.ToInt32(Math.Pow(a, 2) + Math.Pow(b, 2));
k = Convert.ToInt32(Math.Sqrt(s));//فاصله بين دو مركز دايره
f1 = Math.Abs(c[r].R - c[y].R);//r-r1
f = Math.Abs(c[r].R + c[y].R);//r+r1
if (k > f) // دو دايره متخارج
return 1;
if (k == f) //دو دايره مماس خارج
{

Return 2;
// }

if (k == f1) // دو دايره مماس داخل
return3;
if (k > f1 && k < f) //دو دايره متقاطع
return 4;
if (k < f1)//دو دايره متداخل
return 5;
if (k == 0) // دو دايره هم مركز
return 6;