XNA einen gefüllten Kreis Zeichnen

In einem anderen thread auf XNA, Callum Rogers schrieb einige code erstellt eine textur mit dem Umriss eines Kreises, aber ich bin versucht, um einen Kreis gefüllt mit einer Farbe. Was muss ich ändern an diesem code zu füllen, den Kreis mit Farbe?

public Texture2D CreateCircle(int radius)
{
    int outerRadius = radius*2 + 2; //So circle doesn't go out of bounds
    Texture2D texture = new Texture2D(GraphicsDevice, outerRadius, outerRadius);

    Color[] data = new Color[outerRadius * outerRadius];

    //Colour the entire texture transparent first.
    for (int i = 0; i < data.Length; i++)
        data[i] = Color.Transparent;

    //Work out the minimum step necessary using trigonometry + sine approximation.
    double angleStep = 1f/radius;

    for (double angle = 0; angle < Math.PI*2; angle += angleStep)
    {
        //Use the parametric definition of a circle: http://en.wikipedia.org/wiki/Circle#Cartesian_coordinates
        int x = (int)Math.Round(radius + radius * Math.Cos(angle));
        int y = (int)Math.Round(radius + radius * Math.Sin(angle));

        data[y * outerRadius + x + 1] = Color.White;
    }

    texture.SetData(data);
    return texture;
}
XNA nicht primitive, dies zu tun für Sie? Sprechen Sie über eine blutig-knuckles-Ansatz...

InformationsquelleAutor programad | 2011-04-12

Schreibe einen Kommentar