Exemplo n.º 1
0
 static bool IsTouch(Cricle c, int x1,int y1,int x2,int y2)
 {
     var LL = SquareDis(x1, y1, x2, y2);
     var rr = c.R * c.R;
     var K = SquareDis(c.xc, c.yc, x2, y2) + SquareDis(x1, y1,c.xc, c.yc) - 2 * rr;
     if (2 * K - LL < 0 || K > LL)
     {
         return false;
     }
     else {
         return true;
     }
 }
Exemplo n.º 2
0
 static string IsCross(Cricle c,Triangle t)
 {
     var d1 = SquareDis(c.xc, c.yc, t.GetPointX(0), t.GetPointY(0));
     var d2 = SquareDis(c.xc, c.yc, t.GetPointX(1), t.GetPointY(1));
     var d3 = SquareDis(c.xc, c.yc, t.GetPointX(2), t.GetPointY(2));
     var RSquare = c.R * c.R;
     if ((d1 < RSquare && d2 < RSquare && d3 < RSquare) )
     {
         return "NO";
     }
     else if ((d1 > RSquare && d2 > RSquare && d3 > RSquare))
     {
         if (IsTouch(c, t.GetPointX(0), t.GetPointY(0), t.GetPointX(1), t.GetPointY(1))||
             IsTouch(c, t.GetPointX(0), t.GetPointY(0), t.GetPointX(2), t.GetPointY(2))||
             IsTouch(c, t.GetPointX(2), t.GetPointY(2), t.GetPointX(1), t.GetPointY(1)))
             return "YES";
         return "NO";
     }
     else {
         return "YES";
     }
 }