コード例 #1
0
 public void Circle(Vector2 center, double radius, PolygonRenderOptions options)
 {
     Polygon(center, radius, 0, CIRCLE_VERTEX_COUNT, options);
 }
コード例 #2
0
        public void Polygon(Vector2 center, double radius, double angle, int vertexCount, PolygonRenderOptions options)
        {
            double vertexAngle = Math.PI / vertexCount;

            if (options.DoFill)
            {
                GL.Enable(EnableCap.LineSmooth);
                GL.LineWidth(options.BorderWidth);
                GL.Color4(options.FillColor);
                GL.Begin(PrimitiveType.Polygon);

                for (int i = 0; i < vertexCount; i++)
                {
                    Vector2 point = Vector2.FromPolar(angle + i * vertexAngle, radius);
                    GL.Vertex2(ToGL(point));
                }

                GL.End();
            }

            GL.LineWidth(options.BorderWidth);
            GL.Color4(options.Color);
            GL.Begin(PrimitiveType.LineLoop);

            for (int i = 0; i < vertexCount; i++)
            {
                Vector2 point = Vector2.FromPolar(angle + i * vertexAngle, radius);
                GL.Vertex2(ToGL(point));
            }

            GL.End();
            GL.Disable(EnableCap.LineSmooth);
        }