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 :

Probleme de centrer demi circle


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2018
    Messages : 323
    Par défaut Probleme de centrer demi circle
    Bonjour,

    j'arrive pas centrer le demi cercle dans dans un rectangle.
    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
    Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
            Dim g As Graphics = e.Graphics
            Dim r As New Rectangle(0, 0, Me.Width - 1, Me.Height - 1)
            g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias
            g.CompositingQuality = CompositingQuality.HighQuality
            Dim center As New PointF(r.Width / 2, r.Height / 2)
            Dim innerR As Integer = CInt(center.X / 2)
            Dim thickness As Integer = CInt(center.Y / 2)
            Dim startAngle As Integer = 180
            Dim arcLength As Integer = 180
            Dim outerR = innerR + thickness
            Dim outerRect As New Rectangle(center.X - outerR, center.Y - outerR, 2 * outerR, 2 * outerR)
            Dim innerRect As New Rectangle(center.X - innerR, center.Y - innerR, 2 * innerR, 2 * innerR)
            Using p As New GraphicsPath()
                p.AddArc(outerRect, startAngle, arcLength)
                p.AddArc(innerRect, startAngle + arcLength, -arcLength)
                p.CloseFigure()
                g.FillPath(New SolidBrush(Me.BackColor), p)
                g.DrawPath(New Pen(New SolidBrush(Color.Black), 4), p)
            End Using
    end sub
    Pouvez-vous m'aider à centrer demi cercle dans le rectangle? merci d'avance

  2. #2
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2018
    Messages : 323
    Par défaut
    Bonsoir,

    pouvez-vous m'aider à centrer un demi-cercle par rapport au rectangle(voir image).
    exemple du classe :
    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
    Public Class DemiCircle : Inherits Control
     
        Public Sub New()
            Me.SetStyle(ControlStyles.OptimizedDoubleBuffer Or ControlStyles.UserPaint, True)
            Me.MinimumSize = New Size(220, 120)
            Me.Size = New Size(220, 120)
        End Sub
     
        Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
            MyBase.OnPaint(e)
            Dim g As Graphics = e.Graphics
            Dim Hauteur As Integer = Me.ClientRectangle.Height
            Dim Longueur As Integer = Me.ClientRectangle.Width
            Dim centreX As Integer = Hauteur / 2
            Dim CenterY As Integer = Longueur / 2
            Dim radius As Integer = If(Hauteur < Longueur, Hauteur, Longueur) / 2
            Dim rect As New Rectangle(centreX - radius, CenterY - radius, 2 * radius, 2 * radius)
            Using pen As New Pen(Color.Black, 50)
                g.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias
                g.DrawArc(pen, rect, 180, 180)
            End Using
        End Sub
    End Class
    image de la classe :
    Nom : Capture d’écran 2023-05-04 172111.png
Affichages : 101
Taille : 2,6 Ko

    merci d'avance.

  3. #3
    Membre émérite
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Octobre 2006
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2006
    Messages : 736
    Par défaut
    Bonjour,

    A ce que je vois déjà tu as interverti le calcul du centre...CentreX devrait être calculé depuis la largeur pas la hauteur et idem pour CentreY qui devrait être calculé depuis la hauteur

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

Discussions similaires

  1. Probleme pour centrer un menu
    Par alpad dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 11/11/2009, 17h07
  2. Probleme pour centrer une image
    Par Razorbak dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 11/06/2009, 00h20
  3. Probleme pour centrer swf
    Par spektral dans le forum Flash
    Réponses: 4
    Dernier message: 02/04/2007, 16h29
  4. Probleme CSS : Text centrer alors que je le veux a gauche...
    Par vampyrx dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 18/07/2005, 23h53
  5. Probleme pour centrer un bloque xhtml/Css
    Par tooms2028 dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 20/01/2005, 22h08

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