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

VB.NET Discussion :

Dessiner une parenthèse autour d'une fraction avec System.Drawing.Graphics


Sujet :

VB.NET

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Puy de Dôme (Auvergne)

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

    Informations forums :
    Inscription : Mai 2016
    Messages : 5
    Points : 6
    Points
    6
    Par défaut Dessiner une parenthèse autour d'une fraction avec System.Drawing.Graphics
    Bonjour à tous,

    J'ai un petit problème avec le dessin d'une parenthèse autour d'une fraction.
    Lorsque je trace ma formule mathématique, j'ai besoin d'afficher une parenthèse autour d'une fraction. Pour cela je double la taille de ma parenthèse.
    Mais cela me pose un problème car elle apparaît du coup plus "grasse"/"épaisse" que le reste du texte.

    Nom : Dessin.png
Affichages : 208
Taille : 5,4 Ko

    J'aurais besoin d'afficher la parenthèse un peu moins "épaisse" comme cela se fait dans Word par exemple (Le reste de l'affichage convient à mon client).

    Nom : FormuleWord.png
Affichages : 407
Taille : 9,4 Ko

    J'ai beau avoir testé drawString avec tous les paramètres possibles mais je n'y arrive pas.

    J'ai joint mon projet (simplifié) à ce post.

    FormuleDeveloppez.zip

    Merci d'avance pour vos réponse.

  2. #2
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut
    bonjour

    Pour avoir un Font simple sans "fioritures" la famlle de font FontFamily.GenericMonospace est ton bienveillant ami...

    code vb.net :
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
     
    Public Class Form2
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            PictureBox1.Image = TracerFormule()
        End Sub
     
        Private Function TracerFormule(Optional ByVal TaillePolice As Integer = 10) As System.Drawing.Bitmap
            Dim UneImage As New System.Drawing.Bitmap(400, 400)
            UneImage.SetResolution(300, 300)
            Dim g As Graphics = Graphics.FromImage(UneImage)
            Dim TailleDefaut As Integer = 10
            Dim LaPolice As String = "Calibri"
     
     
            ' On récupére le lexeme (arbre) de la formule
            Dim myString As String = "( X y )"
     
            ' Pour que le texte soit beau à l'affichage
            g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit
     
            '************* On dessine *************
     
            DrawString(g, myString, LaPolice, TaillePolice)
     
            ' On dispose les ressources
            g.Dispose()
            g = Nothing
     
            Return UneImage
        End Function
        Private Sub DrawString(ByRef g As Graphics, ByVal s As String, Optional ByVal LaPolice As String = "Courier New", Optional ByVal TaillePolice As Integer = 10)
            Dim UnStyle As FontStyle = FontStyle.Regular
            Dim fntParenthese As Font = New Font(FontFamily.GenericMonospace, TaillePolice * 2, UnStyle)
            Dim fntAutreChar As Font = New Font(LaPolice, TaillePolice, UnStyle)
            Dim sizeFont As Single = fntParenthese.Size
     
     
            Dim drawFormat As New StringFormat
            drawFormat.Alignment = StringAlignment.Center
            Dim position As PointF = g.MeasureString("(", fntParenthese)
     
            Dim pos As New Point(50, 50)
            For Each item As Char In s
                If item = "(" Or item = ")" Then
                    g.DrawString(item, fntParenthese, Brushes.Black, position)
                Else
                    g.DrawString(item, fntAutreChar, Brushes.Black, position)
                End If
     
                position.X += 20
            Next
     
     
        End Sub
     
     
     
     
    End Class
    Ce qui deseagrable c'est de lire des codes avec des details qui obscurcissent le probleme pose !!!
    Bon Code ...

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Puy de Dôme (Auvergne)

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

    Informations forums :
    Inscription : Mai 2016
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Merci MABROUKI

    Cela résout mon problème.

    Je ferrais attention la prochaine fois à l'allure de mon projet pour mettre le strict nécessaire.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Développer une communauté autour de votre site avec Google Friend Connect
    Par Baptiste Wicht dans le forum Général Conception Web
    Réponses: 5
    Dernier message: 17/10/2012, 16h22
  2. Créer une bordure autour d'une image
    Par michaeljeru dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 1
    Dernier message: 09/05/2007, 10h41
  3. copie d'une table Y d'une base A vers une table X d'une base
    Par moneyboss dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 30/08/2005, 21h24

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