/// <summary> /// 타원과 한 점간의 충돌 체크 /// </summary> /// <param name="ellipse">타원</param> /// <param name="pt">좌표</param> /// <returns>충돌 여부</returns> public static bool CheckEllipse(RectangleF ellipse, PointF pt) { EllipseCollision e = new EllipseCollision(10); var cp = MathTool.CenterPoint(ellipse); return(e.Collide(cp.X, cp.Y, ellipse.Width / 2F, ellipse.Height / 2F, pt.X, pt.Y, 0.1)); }
/// <summary> /// 원과 한 점간 충돌 체크 /// </summary> /// <param name="rt1">원</param> /// <param name="pt">점</param> /// <returns>충돌여부</returns> public static bool CheckCircle(RectangleF rt1, Point pt) { var gap = Math.Min(rt1.Width, rt1.Height) / 2; var v = MathTool.GetDistance(MathTool.CenterPoint(rt1), pt); return(v < gap); }
/// <summary> /// 서로 다른 두 타원간의 충돌 체크 /// </summary> /// <param name="ellipse1">타원1</param> /// <param name="ellipse2">타원2</param> /// <returns>충돌 여부</returns> public static bool CheckEllipse(RectangleF ellipse1, RectangleF ellipse2) { EllipseCollision e = new EllipseCollision(10); var cp = MathTool.CenterPoint(ellipse1); var cpT = MathTool.CenterPoint(ellipse2); return(e.Collide(cp.X, cp.Y, ellipse1.Width / 2F, ellipse1.Height / 2, cpT.X, cpT.Y, ellipse2.Width / 2F, ellipse2.Height / 2F)); }