Je veux remplir un cercle dans une image avec une couleur sans en utilisant les méthodes intégrées telles que drawOval()
. J'ai trouvé des algorithmes pour dessiner la bordure d'un cercle, mais je n'arrive pas à comprendre comment créer un cercle plein.Remplir un cercle sur une grille sans méthodes intégrées?
0
A
Répondre
0
Parcourez les rangées avec les coordonnées de center.Y - R
à center.Y + R
et remplissez les lignes horizontales de longueur nécessaire.
for dy = - R to R
dx = Math.Sqrt(R * R - dy * dy) //semi-width
drawline(center.X - dx, center.Y + dy, center.X + dx, center.Y + dy)
C'est tout.
(Si vous utilisez déjà un algorithme de dessin-cercle comme point central une ou l'un Bresenham, vous pouvez remplacer dx et dy avec les valeurs de cet algorithme)
Quels sont les outils que vous souhaitez utiliser? Essayez-vous de le faire en dessinant un pixel à la fois? –
Je suggère de lire http://www.tutorialspoint.com/computer_graphics/polygon_filling_algorithm.htm. –
Vous devez d'abord dessiner la bordure, puis implémenter l'algorithme 'floodFill' (https://en.wikipedia.org/wiki/Flood_fill) – thebjorn