public static Arc GetArc(float radius, int sides, float startingAngle, float radians) { Arc points = new Arc(); points.AddRange(GetCircle(radius, sides)); points.RemoveAt(points.Count - 1); double curAngle = 0.0; double anglePerSide = MathHelper.TwoPi / sides; while ((curAngle + (anglePerSide / 2.0)) < startingAngle) { curAngle += anglePerSide; points.Add(points[0]); points.RemoveAt(0); } points.Add(points[0]); int sidesInArc = (int)((radians / anglePerSide) + 0.5); points.RemoveRange(sidesInArc + 1, points.Count - sidesInArc - 1); return(points); }