Cette fois en version .Net :)
Si ca pt aider qqn ...
Source / Exemple :
'Les importations:
Imports System.Drawing.Drawing2D
'Les déclarations générales:
Public Horloge As New Timer()
'Le Sub New:
Public Sub New()
MyBase.New()
'Cet appel est requis par le Concepteur Windows Form.
InitializeComponent()
' double buffering pour eviter les scintillements
SetStyle(ControlStyles.DoubleBuffer Or ControlStyles.UserPaint Or ControlStyles.AllPaintingInWmPaint, True)
AddHandler Horloge.Tick, AddressOf HorlogeCount
Horloge.Interval = 1000
Horloge.Start()
'Ajoutez une initialisation quelconque après l'appel InitializeComponent()
End Sub
'La fonction du timer:
Private Sub HorlogeCount(ByVal myObject As [Object], ByVal myEventArgs As EventArgs)
PictureBox1.Invalidate()
End Sub
'La Sub Picturebox1.paint:
Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
'anti aliasing
e.Graphics.SmoothingMode = SmoothingMode.AntiAlias
Dim cPen1 As New Pen(Color.Maroon, 3)
Dim cPen2 As New Pen(Color.MidnightBlue, 5)
Dim cPen3 As New Pen(Color.Orange, 1)
Dim Dt As DateTime = Now
Dim Minutes As Integer = Dt.Minute - 15
Dim Secondes As Integer = Dt.Second - 15
Dim Heures As Integer = Dt.Hour - 3
Dim CentreX As Integer = 50 + 50
Dim CentreY As Integer = 50 + 60
Dim X As Integer
Dim Y As Integer
'minutes
X = CentreX + Math.Cos(Minutes * (Math.PI / 30)) * 40
Y = CentreY + Math.Sin(Minutes * (Math.PI / 30)) * 40
e.Graphics.DrawLine(cPen1, CentreX, CentreY, X, Y)
'heures
X = CentreX + Math.Cos(Heures * (Math.PI / 6)) * 30
Y = CentreY + Math.Sin(Heures * (Math.PI / 6)) * 30
e.Graphics.DrawLine(cPen2, CentreX, CentreY, X, Y)
Dim bRect1 As New Rectangle(50, 60, 100, 100)
Dim bRect2 As New Rectangle(45 + 50, 45 + 60, 10, 10)
Dim bPen As New Pen(Color.Gray, 5)
Dim bPen2 As New Pen(Color.White, 2)
Dim bBrush As New SolidBrush(Color.Orange)
e.Graphics.DrawEllipse(bPen, bRect1)
e.Graphics.FillEllipse(bBrush, bRect2)
e.Graphics.DrawEllipse(bPen2, bRect2)
bBrush.Dispose()
bPen.Dispose()
'secondes
X = CentreX + Math.Cos(Secondes * (Math.PI / 30)) * 40
Y = CentreY + Math.Sin(Secondes * (Math.PI / 30)) * 40
e.Graphics.DrawLine(cPen3, CentreX, CentreY, X, Y)
cPen1.Dispose()
cPen2.Dispose()
cPen3.Dispose()
Conclusion :
Voila voilou :)
Si ca px vous servir :)
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.