Je veux juste dessiner des objets 2D simples comme un cercle, une ligne, un carré, etc. en C #. Comment je fais ça? De retour à l'époque Turbo C++, je me souviens d'avoir initialisé une bibliothèque graphique pour pouvoir en faire de même. Dois-je faire quelque chose de similaire dans .NET? Est-ce différent pour les objets 3D? Est-ce que des choses comme DirectX faciliteront cela? Tous les liens vers des tutoriels ou des échantillons sont très appréciés.
Comme d’autres l’ont dit, consultez System.Drawing . (Je ne fais que répéter cela par souci d'exhaustivité.) System.Drawing expose la bibliothèque de dessins GDI + Windows à votre application.
Un bon tutoriel pour vous aider à démarrer avec System.Drawing et GDI + peut être trouvé à C # Corner .
Quelques points importants à noter:
using
. Assurez-vous de suivre les conventions d'élimination appropriées. Si vous ne supprimez pas les objets GDI +, vous risquez d'avoir de très mauvais effets secondaires pour votre application. (Les objets GDI + dans .NET correspondent à leurs équivalents API Windows sous-jacents.)Voici un exemple de code simple qui vous aidera à démarrer (supposons que vous ayez un PictureBox nommé pictureBox1):
Bitmap bmp = new Bitmap(pictureBox1.Width, pictureBox1.Height);
using (Graphics g = Graphics.FromImage(bmp))
{
g.DrawLine(new Pen(Color.Red), 0, 0, 10, 10);
}
pictureBox1.Image = bmp;
L'objet graphique a un tas d'autres méthodes de dessin, et Intellisense vous montrera comment les appeler.
Lisez à propos des espaces de noms GDI, GDI + et System.Drawing, par exemple ici .
Vous n’utiliseriez pas DirectX pour dessiner des formes simples, mais pour restituer des éléments 3D complexes. En outre, utiliser DX Api sous C # est un peu plus délicat (bien que pas si difficile).
Découvrez l'espace de noms System.Drawing: http://msdn.Microsoft.com/en-us/library/system.drawing.aspx
GDI + À l'aide de System.Drawing
Examinez l'espace de noms System.Drawing
Vous devez utiliser GDI +.
La façon dont vous le faites dépend légèrement de ce sur quoi vous voulez puiser. Vous pouvez dessiner sur un contrôle ou un formulaire, ou sur un objet image. Quoi qu'il en soit, vous avez besoin d'un objet System.Drawing.Graphics qui se trouve, je crois, dans System.Drawing.dll.
Vous pouvez instancier une nouvelle classe Bitmap et appeler Graphics.FromImage (myImage), puis dessiner à l'aide des méthodes de l'objet Graphics que vous venez de créer. Si vous souhaitez dessiner sur un formulaire ou un contrôle, substituez simplement la méthode OnPaint et recherchez la propriété Graphics sur la classe EventArgs.
Plus d'informations sur l'espace de noms System.Drawing ici: http://msdn.Microsoft.com/en-us/library/system.drawing.aspx
Recherchez API graphique Direct3D gérée dans .NET Source