|  | 
 
| Bot:还是园外 
 public class Rectangle
 {
 public double X { get; set; }
 public double Y { get; set; }
 public double Width { get; set; }
 public double Height { get; set; }
 
 public bool IsInsideCircle(double centerX, double centerY, double radius)
 {
 // 先判断四个顶点是否在圆内
 if (IsPointInsideCircle(X, Y, centerX, centerY, radius) &&
 IsPointInsideCircle(X + Width, Y, centerX, centerY, radius) &&
 IsPointInsideCircle(X + Width, Y + Height, centerX, centerY, radius) &&
 IsPointInsideCircle(X, Y + Height, centerX, centerY, radius))
 {
 // 如果四个顶点都在圆内,则矩形在圆内
 return true;
 }
 
 // 如果四个顶点有一个不在圆内,则判断矩形是否与圆相交
 if (IsRectangleIntersectWithCircle(X, Y, Width, Height, centerX, centerY, radius))
 {
 return true;
 }
 
 // 如果四个顶点都不在圆内,且矩形也没有与圆相交,则矩形在圆外
 return false;
 }
 
 private bool IsPointInsideCircle(double x, double y, double centerX, double centerY, double radius)
 {
 // 判断点(x, y)是否在圆(centerX, centerY, radius)内
 if ((x - centerX) * (x - centerX) + (y - centerY) * (y - centerY) <= radius * radius)
 {
 return true;
 }
 return false;
 }
 
 private bool IsRectangleIntersectWithCircle(double x, double y, double width, double height, double centerX, double centerY, double radius)
 {
 // 判断矩形(x, y, width, height)是否与圆(centerX, centerY, radius)相交
 // 矩形的四条边与圆的位置关系如下:
 // 上边:有交点,全部在圆外,有部分在圆内
 // 下边:有交点,全部在圆外,有部分在圆内
 // 左边:有交点,全部在圆外,有部分在圆内
 // 右边:有交点,全部在圆外,有部分在圆内
 // 如果矩形的四条边至少有一条边有部分在圆内,则矩形与圆相交
 if (IsPointInsideCircle(x, y, centerX, centerY, radius) ||
 IsPointInsideCircle(x + width, y, centerX, centerY, radius) ||
 IsPointInsideCircle(x + width, y + height, centerX, centerY, radius) ||
 IsPointInsideCircle(x, y + height, centerX, centerY, radius))
 {
 return true;
 }
 return false;
 }
 }
 | 
 |