Beispiel #1
0
        private void Draw(Circle circle)
        {
            Gl.glLoadIdentity();
            var x = circle.Position.X;
            var y = circle.Position.Y;
            Gl.glTranslatef(x, y, -6f);
            Gl.glRotatef(circle.Rotation, 0.0f, 0.0f, 1.0f);
            Gl.glTranslatef(-x, -y, 6f);
            this.SetGlColor(circle.Color);
            Gl.glBegin(Gl.GL_TRIANGLE_FAN);
            var radius = circle.Radius * 0.5F;
            for (int i = 0; i < 360; i += 5)
            {
                var rads = Helper.DegreesToRad(i);
                Gl.glVertex3f(
                        (float)(x + System.Math.Sin(rads) * radius), (float)(y + System.Math.Cos(rads) * radius), -6.0f);
            }
            Gl.glEnd();

            this.SetGlColor(circle.RadiusColor);
            Gl.glBegin(Gl.GL_LINES);
            Gl.glVertex3f(x, y, -6.0f);
            Gl.glVertex3f(x + radius, y, -6.0f);
            Gl.glEnd();
        }
Beispiel #2
0
 public static Circle Create(
         World world, float positionX, float positionY, float radius, float density, float friction)
 {
     var result = new Circle();
     result.Radius = radius;
     result.Density = density;
     result.Color = System.Drawing.Color.White;
     result.RadiusColor = Helper.GetRandomColor();
     result.CreatePhysics(world, positionX, positionY, friction);
     return result;
 }