Top Chrono !

Résolu
gribouillex Messages postés 172 Date d'inscription lundi 10 octobre 2005 Statut Membre Dernière intervention 16 mai 2011 - 27 juin 2007 à 21:07
gribouillex Messages postés 172 Date d'inscription lundi 10 octobre 2005 Statut Membre Dernière intervention 16 mai 2011 - 28 juin 2007 à 12:16
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

jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 28
28 juin 2007 à 09:48
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...
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
27 juin 2007 à 21:37
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
0
gribouillex Messages postés 172 Date d'inscription lundi 10 octobre 2005 Statut Membre Dernière intervention 16 mai 2011
28 juin 2007 à 09:30
Malheureusement, ça ne change absolument rien....
0
gribouillex Messages postés 172 Date d'inscription lundi 10 octobre 2005 Statut Membre Dernière intervention 16 mai 2011
28 juin 2007 à 12:16
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


 
0