public static void DrawCircle(SpriteBatch spriteBatch, float width, Color color, Vector2 Position, float Radius, int Sides) { Vector2 Starting = new Vector2(Radius, 0); Vector2 Next; Vector2 Previous = Starting; float degrees = 360 / Sides; //Console.WriteLine(degrees); if (Sides < 3) { Sides = 36; } for (int i = 1; i < Sides; i++) { /// This is drawing the circle Counter Clock Wise) Next = AngleToV2((i * degrees), Radius); LineDrawer.DrawLine2(spriteBatch, width, color, Position + Previous, Position + Next); // Debug Line //Console.WriteLine(i+"*" + (i * degrees) + "::" + Previous + "::" + Next); Previous = Next; } LineDrawer.DrawLine2(spriteBatch, width, color, Position + Previous, Position + Starting); }
public static void DrawEllipse(SpriteBatch spriteBatch, float width, Color color, Vector2 Position, Vector2 Axis, float Rotation, Vector2 Center, int Sides) { Vector2 RoationCenter = Vector2.Zero; if (Center != Vector2.Zero) { RoationCenter = Center - Position; } Vector2 Starting = RotatePoint(RoationCenter, Rotation, new Vector2(Axis.X, 0)); Vector2 Next; Vector2 Previous = Starting; float degrees = 360 / Sides; //Console.WriteLine(degrees); if (Sides < 3) { Sides = 36; } for (int i = 1; i < Sides; i++) { /// This is drawing the circle Counter Clock Wise) Next = RotatePoint(RoationCenter, Rotation, AngleToEllipseV2((i * degrees), 1.0f, Axis)); LineDrawer.DrawLine2(spriteBatch, width, color, Position + Previous, Position + Next); // Debug Line //Console.WriteLine(i+"*" + (i * degrees) + "::" + Previous + "::" + Next); Previous = Next; } LineDrawer.DrawLine2(spriteBatch, width, color, Position + Previous, Position + Starting); }