Fonction pour une horloge analogique

Description

C'est simplement pour faire une horloge analogique, je me suis inspiré de la source de Radar pour les formules mathématiques.

Source / Exemple :


Public Function DessineHorloge(heure As Byte, minute As Byte, seconde As Byte, _
lPictureBox As PictureBox)
On Error Resume Next
Dim HX As Long, HY As Long, i As Long, tempVar As Long
Dim CentreX As Long, CentreY As Long
CentreX = lPictureBox.ScaleWidth / 2
CentreY = lPictureBox.ScaleHeight / 2
With lPictureBox
    .Cls
For i = 1 To 12
    HX = Int((CentreY - 40) * Cos((((i * 30) - 90) / 180) * 3.141592654))
    HY = Int((CentreY - 40) * Sin((((i * 30) - 90) / 180) * 3.141592654))
        .CurrentX = HX + CentreX - .TextWidth(i)
        .CurrentY = HY + CentreY - (.TextHeight(i) / 2)
        .DrawWidth = 10

    lPictureBox.Print i
Next i
    lPictureBox.Circle (CentreX, CentreY), (CentreY - .DrawWidth)
    .DrawWidth = 1
End With 'Les minutes
    tempVar = ((heure + (minute / 60)) * 30)
    HX = Int((CentreY - 70) * Cos(((tempVar - 90) / 180) * 3.141592654))
    HY = Int((CentreY - 70) * Sin(((tempVar - 90) / 180) * 3.141592654))
    lPictureBox.Line (CentreX, CentreY)-(CentreX + HX, CentreY + HY), vbBlack
'Les minutes
    tempVar = ((minute + (seconde / 60)) * 6)
    HX = Int((CentreY - 60) * Cos(((tempVar - 90) / 180) * 3.141592654))
    HY = Int((CentreY - 60) * Sin(((tempVar - 90) / 180) * 3.141592654))
    lPictureBox.Line (CentreX, CentreY)-(CentreX + HX, CentreY + HY), vbBlack
'Les secondes
    tempVar = (seconde * 6)
    HX = Int((CentreY - 50) * Cos(((tempVar - 90) / 180) * 3.141592654))
    HY = Int((CentreY - 50) * Sin(((tempVar - 90) / 180) * 3.141592654))
    lPictureBox.Line (CentreX, CentreY)-(CentreX + HX, CentreY + HY), vbRed
End Function

Conclusion :


Pour l'heure normal :

DessineHorloge (Format(Time, "HH") - 12), Right(Format(Time, "HH:MM"), 2), Right(Format(Time, "HH:MM:SS"), 2), PicHorloge

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.