Example #1
0
        public static bool ArcCircleCollides(Vector2F arcCenter, Vector2F arcDirection, float arcRadius, float arcLength, Circle circle)
        {
            Vector2F arcDelta    = arcDirection - arcCenter;
            Vector2F circleDelta = circle.Center - arcCenter;

            if (arcDelta == circleDelta)
            {
                return(true);
            }

            if (arcDelta.Angle(circleDelta) < arcLength / 2f)
            {
                return(Vector2F.Distance(arcCenter, circle.Center) <= arcRadius + circle.Radius);
            }
            else
            {
                return(false);
            }
        }