2017-07-15 2 views
0

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

Quels sont les outils que vous souhaitez utiliser? Essayez-vous de le faire en dessinant un pixel à la fois? –

+0

Je suggère de lire http://www.tutorialspoint.com/computer_graphics/polygon_filling_algorithm.htm. –

+0

Vous devez d'abord dessiner la bordure, puis implémenter l'algorithme 'floodFill' (https://en.wikipedia.org/wiki/Flood_fill) – thebjorn

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)