Programmation C sharp/Interfaces graphiques/Graphique vectoriel
Espaces de nom
modifierSystem.Drawing.Drawing2D
- Cet espace de nom contient des classes permettant la conception de graphiques vectoriels avancés en 2D.
Un premier graphique
modifierusing 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.
Quelques méthodes
modifierLa 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.