Programmation C sharp/Interfaces graphiques/Graphique vectoriel
Un livre de Wikibooks.
[modifier] Espaces de nom
System.Drawing.Drawing2D : permet de concevoir des graphiques vectoriels avancé en 2D.
[modifier] Un premier graphique
using System; using System.ComponentModel; using System.Collections.Generic; using System.Drawing; using System.Drawing.Drawing2D; using System.Windows.Forms; namespace test { public partial class Form1 : Form { private int yPos = 40; private PictureBox pictureBox1; private Graphics g; public Form1() { this.InitializeComponent(); this.Show(); } private void InitializeComponent() { this.pictureBox1 = new PictureBox(); ((ISupportInitialize) this.pictureBox1).BeginInit(); this.SuspendLayout(); // // pictureBox1 // this.pictureBox1.Location = new Point(12, 12); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new Size(268, 112); this.pictureBox1.TabIndex = 0; this.pictureBox1.TabStop = false; // // Form1 // this.ClientSize = new Size(292, 141); this.Controls.Add(this.pictureBox1); this.Name = "Form1"; ((ISupportInitialize) this.pictureBox1).EndInit(); this.ResumeLayout(false); } static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } private void Show() { Bitmap bmp = new Bitmap( pictureBox1.Width, pictureBox1.Height); using (Graphics image = Graphics.FromImage(bmp)) { Pen myPen1 = new Pen(Color.Red); Pen myPen2 = new Pen(Color.Black); myPen1.Width = 5; myPen2.Width = 5; SolidBrush myBrush = new SolidBrush(Color.Red); Font myFont = new Font("Times New Roman", 24); // smile image.DrawLine(myPen2, 10, 5, 20, 5); image.DrawLine(myPen2, 55, 5, 65, 5); image.DrawBezier(myPen2, 15, 15, 15, 40, 60, 40, 60, 15); image.DrawString("~heLLo wErld ~", myFont, myBrush, 10, (this.yPos = this.yPos + 25)); } // using pictureBox1.Image = bmp; } } }
Les méthodes appliquées ici sont issues de la classe Graphics de .NET.
Pour afficher l'image il faut initialiser auparavant un constructeur de cette classe ou l'appeler par un évènement on_click par exemple.
[modifier] Quelques méthodes
La classe Graphics comprend de nombreuses autres méthodes du genre. Dont :
- DrawArc : Dessine un arc représentant une partie d'une ellipse indiquée par une paire de coordonnées, d'une largeur, et d'une taille.
- DrawBezier : Dessine une cannelure de Bézier définie par quatre structures de point.
- DrawBeziers : Tire une série de cannelures de Bézier d'un choix de structures de point.
- DrawClosedCurve : Dessine une cannelure cardinale fermée définie par un choix de structures de point.
- DrawCurve : Dessine une cannelure cardinale par un choix indiqué de structures de point.
- DrawEllipse : Dessine une ellipse définie par un rectangle de bondissement indiqué par une paire des coordonnées, d'une taille, et d'une largeur.
- DrawIcon : Dessine l'image représentée par l'icône indiquée aux coordonnées indiquées.
- DrawIconUnstretched : dessine l'image représentée par l'icône indiquée sans mesurer l'image.
- DrawImage : Dessine l'image indiquée à l'endroit indiqué et avec le format document.
- DrawImageUnscaled : Dessine l'image indiquée en utilisant son taille physique originale à l'endroit indiqué par une paire du même rang.
- DrawImageUnscaledAndClipped : dessine l'image indiquée sans graduation et agrafes il, au besoin, à l'ajustement dans le rectangle indiqué.
- DrawLine : Trace une ligne reliant les deux points indiqués par les paires du même rang.
- DrawLines : Dessine une série de ligne segments qui relient un choix de structures de point. dessine un GraphicsPath.
- DrawPie : Dessine une forme de pâté en croûte définie par une ellipse indiquée par une paire du même rang, une largeur, une taille, et deux lignes radiales.
- DrawPolygon : Dessine un polygone défini par un choix de structures de point.
- DrawRectangle : Dessine un rectangle indiqué par une paire du même rang, une largeur, et une taille.
- DrawRectangles : Dessine une série de rectangles indiqués par des structures de Rectangle. Cordon Surchargé. Dessine la corde indiquée des textes à l'endroit indiqué avec la brosse indiquée et la police objecte.



