XNA n'a aucune méthode qui supporte le dessin en cercle.
Normalement, quand je devais dessiner un cercle, toujours avec la même couleur, je faisais juste une image avec ce cercle et ensuite je pouvais l'afficher comme un sprite.
Mais maintenant la couleur du cercle est spécifiée pendant l'exécution, des idées pour y faire face?Comment dessiner un cercle avec une couleur spécifique dans XNA?
10
A
Répondre
37
Vous pouvez simplement créer une image d'un cercle avec un arrière-plan Transparent
et la partie colorée du cercle comme White
. Puis, quand il s'agit de dessiner des cercles dans la méthode Draw()
, sélectionnez la teinte que ce que vous voulez qu'il soit:
Texture2D circle = CreateCircle(100);
// Change Color.Red to the colour you want
spriteBatch.Draw(circle, new Vector2(30, 30), Color.Red);
Juste pour le plaisir, voici la méthode 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;
}
Questions connexes
- 1. Dessiner Rectangle avec XNA
- 2. Comment dessiner une ellipse/cercle sur QGraphicsScene dans un QGraphicsView
- 3. Dessiner un demi-cercle/demi-cercle dans WPF/C#
- 4. Comment dessiner un cercle plein en Java?
- 5. Comment dessiner un cercle dans un sprite dans Cocos2d?
- 6. Quartz2D: Comment dessiner un arc de cercle?
- 7. Comment dessiner un cercle avec un milieu transparent
- 8. dessiner un cercle en flex
- 9. Comment dessiner un cercle anti-aliasé avec l'iPhone OpenGL ES
- 10. Comment dessiner un cercle dans un fichier Flex MXML?
- 11. Comment dessiner un cercle autour d'un point sur une carte?
- 12. Couleur pixel unique dans XNA
- 13. Dessiner un cercle à l'intérieur d'une étiquette
- 14. en utilisant un script d'action comment dessiner un demi-cercle
- 15. Comment dessiner un cercle d'apparence décente en Java
- 16. Comment dessiner un cercle affichant un nombre en flex
- 17. dessiner cercle sur MKMapview dans l'application iphone
- 18. Comment dessiner un cercle sur JPanel? Java 2D
- 19. XNA comment stocker et dessiner une carte 2D?
- 20. Comment dessiner un cercle pour désigner la sélection en html
- 21. Dessiner un cercle en pointillés dans Android View
- 22. XNA comment puis-je dessiner un graphique simple?
- 23. dessiner des lignes qui dépassent d'un cercle
- 24. openGL GLSL Shader: dessiner un cercle sur un polygone plat
- 25. Dessiner des images pour ajuster le cercle
- 26. Détection d'un cercle d'une couleur spécifique (ou niveau de gris) avec openCV
- 27. Comment dessiner un cercle et une ligne dans la zone d'image?
- 28. Toile HTML5 - Remplir un cercle avec l'image
- 29. Comment dessiner un rectangle de couleur dans OpenGL ES?
- 30. Dessiner un quad texturé à l'aide de XNA
Je me souviens avoir lu quelque chose comme ça sur les forums de XNA. – Mike