IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Dessiner une croix


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 20
    Par défaut Dessiner une croix
    Bonjour,

    Je travail actuellement sur un mini projet. J'aimerais dessiner un cadre. Au début je suis parti sur un dessin de rectangle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
            private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
            {
                e.Graphics.DrawImage(pictureBox1.Image, 120,80);
                e.Graphics.DrawString(textBox2.Text, new Font("Arial", 15), Brushes.Black, new Point(15, 20));
     
     
                    Rectangle ee = new Rectangle(10, 10, 340, 207);
     
                    using (Pen pen = new Pen(Color.Black, 2))
                    {
                        e.Graphics.DrawRectangle (pen, ee);
                    }
    C'est cool ça fonctionne, mais maintenant à la place de se rectangle je dois partir sur un dessin de croix (" + ") pour simuler chaque angles.

    Je ne trouve absolument rien sur internet parlant de croix, cross, plus, etc ...

    Si quelqu'un aurait une idée .. Merci !

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 479
    Par défaut
    Tu peux utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    e.Graphics.DrawLine(pen, point1, point2)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    e.Graphics.DrawLine(pen, point3, point4)
    Car deux lignes qui se croisent font une croix

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 20
    Par défaut
    Citation Envoyé par lead8209 Voir le message
    Tu peux utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    e.Graphics.DrawLine(pen, point1, point2)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    e.Graphics.DrawLine(pen, point3, point4)
    Car deux lignes qui se croisent font une croix
    Hum enfait j'avais commencer comme ça

    mais bon j'ai vite fait le calcul, 8 lignes, 16 points a placer précisément ... j'aurais penser à un truc tout faire, genre pour les cercles, carrée, rectangles, polygones ... :/

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 479
    Par défaut
    A ma connaissance il n'y a pas de fonction toute faite dans Graphics pour réaliser ce que tu demandes.
    Par contre tu peux te créer un truc comme ça :
    --- pas testé ---
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
            {
                e.Graphics.DrawImage(pictureBox1.Image, 120, 80);
                e.Graphics.DrawString(textBox2.Text, new Font("Arial", 15), Brushes.Black, new Point(15, 20));
                Rectangle rect = new Rectangle(10, 10, 340, 207);
     
                using (Pen pen = new Pen(Color.Black, 2))
                {
                    int offset = 3;
                    Croix c1 = new Croix(rect.Location, offset);
                    Croix c2 = new Croix(new Point(rect.X + rect.Width, rect.Y), offset);
                    Croix c3 = new Croix(new Point(rect.X, rect.Y - rect.Height), offset);
                    Croix c4 = new Croix(new Point(rect.X + rect.Width, rect.Y - rect.Height), offset);
     
                    c1.DrawCroix(e.Graphics, pen);
                    c2.DrawCroix(e.Graphics, pen);
                    c3.DrawCroix(e.Graphics, pen);
                    c4.DrawCroix(e.Graphics, pen);
                }
            }
            public class Croix
            {
                public readonly Point p1 = Point.Empty;
                public readonly Point p2 = Point.Empty;
                public readonly Point p3 = Point.Empty;
                public readonly Point p4 = Point.Empty;
                public Croix(Point pPoint, int pOffset)
                {
                    p1 = new Point(pPoint.X, pPoint.Y - pOffset);
                    p2 = new Point(pPoint.X + pOffset, pPoint.Y);
                    p3 = new Point(pPoint.X, pPoint.Y + pOffset);
                    p4 = new Point(pPoint.X - pOffset, pPoint.Y - pOffset);
                }
                public void DrawCroix(Graphics pGraph, Pen pPen)
                {
                    pGraph.DrawLine(pPen, p1, p3);
                    pGraph.DrawLine(pPen, p2, p4);
                }
            }
    A voir si ça fonctionne je ne l'ai pas lancé.

    A+

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 20
    Par défaut
    Merci c'est cool ! J'ai pu tester ton code il fonctionne, il m'affiche un semblant de croix en haut de la gauche et de la droite !

    J'ver essayer de le comprendre, et finir le boulot ! Merci en tous cas

  6. #6
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut
    bonjour

    HatchBrush est ton ami....Il peut etre rempli par un bitmap qu tu prepareras avec paint (croix de lorraine,croissant, et autres symboles ...etc...

    ensuite voici le code c# extrait de msdn doc:How to: Draw a Line Filled with a Texture


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Bitmap bitmap = new Bitmap("Texture1.jpg");
    TextureBrush tBrush = new TextureBrush(bitmap);
    Pen texturedPen = new Pen(tBrush, 30);
     
    e.Graphics.DrawImage(bitmap, 0, 0, bitmap.Width, bitmap.Height);
    e.Graphics.DrawEllipse(texturedPen, 100, 20, 200, 100);
     
    e.Graphics.DrawLine(texturedPen, 10, 20, 200, 20);
    bon code......

Discussions similaires

  1. [Swing][Graphics2D] dessiner une flèche
    Par Galima dans le forum 2D
    Réponses: 13
    Dernier message: 03/12/2011, 23h31
  2. Réponses: 3
    Dernier message: 19/05/2009, 15h32
  3. Dessiner une ligne
    Par Bugmaster dans le forum 2D
    Réponses: 6
    Dernier message: 29/07/2004, 08h36
  4. Dessiner une image en arrière plan d'1 MDI Main Frame
    Par Yacine95000 dans le forum MFC
    Réponses: 3
    Dernier message: 14/06/2004, 10h22
  5. Dessiner une ligne dans un cube transparent ?
    Par Muetdhiver dans le forum OpenGL
    Réponses: 4
    Dernier message: 04/05/2004, 11h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo