C # aide GDI Drawing2D
Question
Quelles méthodes GDI puis-je utiliser pour dessiner la forme bleu montre l'image ci-dessous? Le centre doit être transparent.
La solution
Il y a un certain nombre de façons, mais vous voudrez probablement utiliser les éléments suivants:
FillRectangle
FillPolygon
DrawLine
car il ressemble à votre forme peut être réduite à un rectangle et deux polygones, puis décrit par quelques lignes.
Voici un exemple très simple et codé en dur de ce que je pensais:
Private Sub Control_Paint(ByVal sender As Object, ByVal e As PaintEventArgs) _
Handles MyBase.Paint
Dim g As Graphics = e.Graphics
g.FillRectangle(Brushes.Aqua, New Rectangle(10, 10, 10, 90))
g.FillPolygon(Brushes.Aqua, New Point() { _
New Point(10, 10), _
New Point(20, 10), _
New Point(40, 50), _
New Point(30, 50)})
g.FillPolygon(Brushes.Aqua, New Point() { _
New Point(10, 100), _
New Point(20, 100), _
New Point(40, 50), _
New Point(30, 50)})
g.DrawLine(Pens.Black, New Point(10, 10), New Point(10, 100))
g.DrawLine(Pens.Black, New Point(10, 100), New Point(20, 100))
g.DrawLine(Pens.Black, New Point(20, 100), New Point(40, 50))
g.DrawLine(Pens.Black, New Point(40, 50), New Point(20, 10))
g.DrawLine(Pens.Black, New Point(20, 10), New Point(10, 10))
...
Autres conseils
Im en supposant namespace GDI + ici System.Drawing aka.
La meilleure chose à faire est de regarder classe System.Drawing.Drawing2d.GraphicsPath:
http://msdn.microsoft.com /en-us/library/system.drawing.drawing2d.graphicspath.aspx
Vous devez vous assurer que vous fermez le chemin pour obtenir l'effet creux.
Ne serait-il pas plus facile de dessiner à l'aide d'un bitmap? C'est ce qu'ils sont de toute façon.)