public static void DrawGrid(int gridStep, WorldTransform w, bool drawRadii, Color lineColor, Color textColor, Color radiiColor) { GLUtility.DisableNiceLines(); for (int i = (int)w.WorldLowerLeft.Y; i < w.WorldUpperRight.Y; i++) { if (i % gridStep == 0) { GLUtility.DrawLine(new GLPen(lineColor, 1.0f), (float)w.WorldLowerLeft.X, i, (float)w.WorldUpperRight.X, i); GLUtility.DrawString(i.ToString() + "m", new Font("verdana", 1), textColor, new PointF(0, i + .25f)); } } for (int i = (int)w.WorldLowerLeft.X; i < w.WorldUpperRight.X; i++) { if (i % gridStep == 0) { GLUtility.DrawLine(new GLPen(lineColor, 1.0f), i, (float)w.WorldLowerLeft.Y, i, (float)w.WorldUpperRight.Y); GLUtility.DrawString(i.ToString() + "m", new Font("verdana", 1), textColor, new PointF(i, (float)(w.WorldUpperRight.Y - w.WorldLowerLeft.Y) / 2.0f)); } } if (drawRadii) { RectangleF r = new RectangleF(new PointF(-gridStep, -gridStep), new SizeF(gridStep * 2.0f, gridStep * 2.0f)); for (int i = 0; i < 20; i++) { r.Inflate(gridStep, gridStep); GLUtility.DrawEllipse(new GLPen(radiiColor, 1), r); } } GLUtility.EnableNiceLines(); }
public static void DrawCircle(GLPen p, PointF center, float radius) { p.GLApplyPen(); Gl.glPushMatrix(); Gl.glTranslatef(center.X, center.Y, 0); GLUtility.DrawEllipse(p, new RectangleF(-radius, -radius, radius * 2, radius * 2)); Gl.glPopMatrix(); }