Top Chrono !

[Résolu]
Signaler
Messages postés
172
Date d'inscription
lundi 10 octobre 2005
Statut
Membre
Dernière intervention
16 mai 2011
-
Messages postés
172
Date d'inscription
lundi 10 octobre 2005
Statut
Membre
Dernière intervention
16 mai 2011
-
Je positionne cette demande dans une catégorie plus adaptée..

Comment avoir le même chose que le résultat ci-dessous en faisant partir le remplissage du haut du cercle et non de la droite (comme le ferait un montre).

merci pour toute aide
------------------------------------------------------
(créer Picture1 et Timer1 avec une intervale à 1 sur une form)

Dim vall As Single


Private Sub Form_Load()
    Timer1.Enabled = True
    vall = -100
End Sub

Private Sub Timer1_Timer()
    vall = vall + 1
    Call affiche_camembert(Picture1)
End Sub


Sub affiche_camembert(camembert As PictureBox)


Const PI = 3.14159265359
camembert.Cls
camembert.AutoRedraw = True
camembert.FillStyle = 0
camembert.FillColor = vbRed
camembert.Circle (camembert.ScaleWidth / 2, camembert.ScaleHeight / 2), (camembert.ScaleHeight * 0.45), vbRed, -0.00000001, (2 * PI) * vall / 100
   
If vall = 0 Then
    Timer1.Enabled = False
    camembert.Cls
End If


End Sub


 

4 réponses

Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Je m'en occupe cet après-midi...

Et à propos de midi : le "point haut" (midi) de ton cercle a la valeur -PI/2 radians
(si tu veux déjà commencer à réfléchir avec en attendant)... et à aucun moment tu ne dois dépasser les 2*PI radians ni les -2*Pi radians
C'est avant toute autre chose un problème mathématique.
A cet aprem, donc...
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
A essayer :

( (2 * PI) * vall + (PI/2) ) / 100

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
172
Date d'inscription
lundi 10 octobre 2005
Statut
Membre
Dernière intervention
16 mai 2011

Malheureusement, ça ne change absolument rien....
Messages postés
172
Date d'inscription
lundi 10 octobre 2005
Statut
Membre
Dernière intervention
16 mai 2011

Ca y'est j'ai réussi !!
Merci de m'avoir mis sur la piste jmfmarques
Bon, c'est peut-être de la bidouille de débutant, mais le résultat est là !

Dim vall
Const PI = 3.14159265359


Private Sub Form_Load()
    Timer1.Enabled = True
    vall = -100
End Sub

Private Sub Timer1_Timer()
    vall = vall + 0.5
    Call affiche_camembert(Picture1)
End Sub


Sub affiche_camembert(camembert As PictureBox)
If vall > 300 Then
    Timer1.Enabled = False
    camembert.Cls
    Exit Sub
End If


camembert.Cls
camembert.AutoRedraw = True
camembert.FillStyle = 0
camembert.FillColor = vbRed
If (PI / 2) * vall / 100 < 0 Then
    camembert.Circle (camembert.ScaleWidth / 2, camembert.ScaleHeight / 2), (camembert.ScaleHeight * 0.45), vbYellow, -1.5555, (PI / 2) * vall / 100
Else
    camembert.Circle (camembert.ScaleWidth / 2, camembert.ScaleHeight / 2), (camembert.ScaleHeight * 0.45), vbYellow, -1.5555, (PI / 2) * (vall - 400) / 100
End If


End Sub