Utilisation de la technologie .NET System.Drawing.Graphics
J'ai une forme composée de deux tableaux de points. Ce sont les pixels rouges et verts dans l'image ci-dessous.
J'essaie maintenant de remplir l'intérieur de cette forme avec une couleur. Le dessiner sous forme de simples lignes fonctionne très bien. Comme ceci :
g.DrawCurve(Pens.Red, points1);
g.DrawCurve(Pens.Green, points2);
Cela donne l'image de gauche (1).
texte alternatif http://lisa.xms.se/wic/filled.png
Pour remplir ce truc, j'ai essayé d'utiliser un GraphicsPath
comme ça :
GraphicsPath gp = new GraphicsPath();
gp.AddCurve(points1);
gp.AddCurve(points2);
g.FillPath(Brushes.Blue, gp);
Cela fonctionne... en quelque sorte. Le problème est quand la forme se chevauche comme vous pouvez le voir dans l'image du milieu (2) et ne remplit pas la partie qui se chevauche.
J'ai essayé d'utiliser gp.widen()
pour obtenir le contour, puis le remplissage après cela :
gp.Widen(new Pen(Color.Blue, 3));
g.FillPath(Brushes.Blue, gp);
Cela devrait fonctionner, mais cela ne semble remplir que la tranche de 3 pixels. à l'extérieur de la forme et non l'ensemble, comme on le voit sur l'image (3).
Une idée pour résoudre ce problème ?