XNA non ha alcun metodo che supporti il disegno circolare.
Normalmente quando ho dovuto disegnare un cerchio, sempre con lo stesso colore, ho appena creato un'immagine con quel cerchio e quindi ho potuto visualizzarlo come uno sprite.
Ma ora il colore del cerchio viene specificato durante il runtime, qualche idea su come affrontarlo?Come disegnare cerchi con colori specifici in XNA?
10
A
risposta
37
È sufficiente creare un'immagine di un cerchio con uno sfondo Transparent
e la parte colorata del cerchio come White
. Poi, quando si tratta di disegnare i cerchi nel metodo Draw()
, selezionare la tinta come quello che vuoi che sia:
Texture2D circle = CreateCircle(100);
// Change Color.Red to the colour you want
spriteBatch.Draw(circle, new Vector2(30, 30), Color.Red);
Solo per divertimento, qui è il metodo CreateCircle:
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.TransparentWhite;
// 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;
}
Problemi correlati
- 1. Come disegnare cerchi con colori casuali in OpenCV
- 2. Come disegnare le linee tra i cerchi?
- 3. Come disegnare 2D pixel per pixel in XNA?
- 4. veloce algoritmo per disegnare cerchi pieni?
- 5. I colori sono errati quando si usa RenderTarget2D in XNA
- 6. Imposta colori di riempimento specifici in ggplot2 con il segno
- 7. Come disegnare la finestra XNA all'interno di un pannello?
- 8. Impossibile disegnare un'immagine oltre il quadrato in XNA
- 9. colori casuali per i cerchi in d3.js grafico
- 10. Come disegnare cerchio con partizionato in Android?
- 11. cerchi di disegno con System.Drawing
- 12. ggplot geom_point() con colori basati su specifici valori discreti
- 13. Estrarre oggetti di colori specifici e convertirli in percorsi
- 14. Come disegnare la ruota dei colori nell'applicazione WPF?
- 15. Come disegnare 'rischio biologico' con altalena
- 16. Come disegnare una ruota dei colori nell'obiettivo-c
- 17. Come disegnare la linea del grafico con colori differenti in Linea
- 18. Draw Rectangle with XNA
- 19. Disegna un cerchio semplice in XNA
- 20. Come posso disegnare un cerchio in Unity3D?
- 21. Come disegnare un rettangolo arrotondato con bordo di larghezza variabile all'interno di limiti specifici
- 22. come usare cerchi di hough in cv2 con python?
- 23. Come evitare di disegnare componenti XNA quando è fuori dallo schermo?
- 24. Come disegnare la corsa interna con Java2D
- 25. Posso disegnare con antialiasing su tela?
- 26. Creazione di un poligono 2D in XNA
- 27. XNA - Accesso con profilo locale
- 28. Screensavers con XNA e .NET?
- 29. XNA - Neve simulata
- 30. Trova cerchi sovrapposti/complessi con OpenCV
Ricordo di aver letto qualcosa del genere nei forum di XNA. – Mike