Programmation C sharp/Interfaces graphiques/Graphique vectoriel

Un livre de Wikilivres.
Programmation C#
Programmation C#
Modifier ce modèle

Espaces de nom[modifier | modifier le wikicode]

System.Drawing.Drawing2D
Cet espace de nom contient des classes permettant la conception de graphiques vectoriels avancés en 2D.

Un premier graphique[modifier | modifier le wikicode]

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.

Quelques méthodes[modifier | modifier le wikicode]

La classe Graphics comprend de nombreuses autres méthodes du genre. Dont :

  1. 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.
  2. DrawBezier : Dessine une cannelure de Bézier définie par quatre structures de point.
  3. DrawBeziers : Tire une série de cannelures de Bézier d'un choix de structures de point.
  4. DrawClosedCurve : Dessine une cannelure cardinale fermée définie par un choix de structures de point.
  5. DrawCurve : Dessine une cannelure cardinale par un choix indiqué de structures de point.
  6. 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.
  7. DrawIcon : Dessine l'image représentée par l'icône indiquée aux coordonnées indiquées.
  8. DrawIconUnstretched : dessine l'image représentée par l'icône indiquée sans mesurer l'image.
  9. DrawImage : Dessine l'image indiquée à l'endroit indiqué et avec le format document.
  10. DrawImageUnscaled : Dessine l'image indiquée en utilisant son taille physique originale à l'endroit indiqué par une paire du même rang.
  11. DrawImageUnscaledAndClipped : dessine l'image indiquée sans graduation et agrafes il, au besoin, à l'ajustement dans le rectangle indiqué.
  12. DrawLine : Trace une ligne reliant les deux points indiqués par les paires du même rang.
  13. DrawLines : Dessine une série de ligne segments qui relient un choix de structures de point. dessine un GraphicsPath.
  14. 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.
  15. DrawPolygon : Dessine un polygone défini par un choix de structures de point.
  16. DrawRectangle : Dessine un rectangle indiqué par une paire du même rang, une largeur, et une taille.
  17. 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.