Quelles méthodes GDI puis-je utiliser pour dessiner la forme bleue montrée dans l'image ci-dessous? Le centre doit être transparent.Aide C# GDI Drawing2D
1
A
Répondre
1
Il y a un certain nombre de façons, mais vous aurez probablement envie d'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 très simple et un exemple 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))
...
1
Im en supposant namespace GDI + ici System.Drawing aka.
La meilleure chose à faire est de regarder la 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.
-1
Ne serait-il juste être plus facile de dessiner à l'aide d'un bitmap? C'est ce qu'ils sont pour de toute façon :).
Je pense qu'un rectangle et un polygone fonctionneront, je vais essayer. – Kevin
@Kevin: ajout d'un exemple de code de dessin pour développer ce que j'imaginais. Notez qu'il est codé en dur et ne dérange pas le triangle intérieur. Pas assez de temps aujourd'hui. ;-) –
les bords intérieurs sont un peu plus compliqués. – Kevin