vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Linien Rotation 
Autor: GPM
Datum: 21.06.06 19:45

Hier mal eine Uhr:

Imports System.Drawing.Drawing2D
Public Class Form1
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Timer1.Tick
        Dim bmp As Bitmap = New Bitmap(310, 310)                       ' legt 
        ' eine neue Bitmap an
        Dim g As Graphics = Graphics.FromImage(bmp)                    ' g wird 
        ' nun zur Zeichenfläche
        Dim gFont As New Font("New curier", 20, FontStyle.Bold)        ' für 
        ' die Stundenzahlen
        Dim f1 As Pen = New Pen(Color.Yellow, 10)                      ' für 
        ' die gelben Zeiger
        Dim f2 As Pen = New Pen(Color.Red, 3)                          ' für 
        ' den Sekundenzeiger
        Dim x, y, wi, b As Int32
        Dim h As Int32 = DateTime.Now.Hour                             ' 
        ' aktuelle Stunde
        Dim m As Int32 = DateTime.Now.Minute                           ' 
        ' aktuelle Minute
        Dim s As Int32 = DateTime.Now.Second                           ' 
        ' aktuelle Sekunde
        f1.EndCap = LineCap.Triangle                                   ' Spitze 
        ' für das Zeigerende
        f1.StartCap = LineCap.RoundAnchor                              ' Kreis 
        ' für den Zeigeranfang
        g.SmoothingMode = Drawing2D.SmoothingMode.HighQuality                 ' 
        ' Antialiasingmodus
        g.TextRenderingHint = Drawing.Text.TextRenderingHint.ClearTypeGridFit ' 
        ' Schriftglättung
        If h > 12 Then h -= 12                                           ' 
        ' 12 Stundenanzeige
        g.FillEllipse(Brushes.Blue, 1, 1, 308, 308)                    ' der 
        ' blaue Rand
        g.FillEllipse(Brushes.Black, 15, 15, 280, 280)                 ' das 
        ' schwarze Zifferblatt
        b = 12
        For wi = 90 To 420 Step 30
            x = 135 + Math.Cos(wi * Math.PI / 180) * 120               ' Grad 
            ' in Bogenmaß
            y = 140 - Math.Sin(wi * Math.PI / 180) * 120               ' Grad 
            ' in Bogenmaß
            If b = 12 Then x -= 7
            g.DrawString(Str(b), gFont, Brushes.Yellow, x, y)          ' die 
            ' Stundenzahlen anzeigen
            b -= 1
        Next wi
        gFont.Dispose()
        For wi = 90 To 450 Step 6
            x = 154 + Math.Cos(wi * Math.PI / 180) * 135
            y = 154 - Math.Sin(wi * Math.PI / 180) * 135
            g.FillEllipse(Brushes.Yellow, x, y, 3, 3)                  ' die 
            ' Sekundenpunkte zeichnen
        Next wi
        g.TranslateTransform(-155, -155)
        g.RotateTransform(-90 + h * 30 + (m \ 2), MatrixOrder.Append)
        g.TranslateTransform(155, 155, MatrixOrder.Append)
        g.DrawLine(f1, 155, 155, 245, 155)                             ' den 
        ' Stundenzeiger zeichnen
        g.ResetTransform()
        g.TranslateTransform(-155, -155)
        g.RotateTransform(-90 + m * 6 + (s \ 10), MatrixOrder.Append)
        g.TranslateTransform(155, 155, MatrixOrder.Append)
        f1.Width = 8
        g.DrawLine(f1, 155, 155, 280, 155)                             ' dann 
        ' den Minutenenzeiger
        f1.Dispose()
        g.ResetTransform()
        g.TranslateTransform(-155, -155)
        g.RotateTransform(-90 + s * 6, MatrixOrder.Append)
        g.TranslateTransform(155, 155, MatrixOrder.Append)
        g.DrawLine(f2, 155, 155, 280, 155)                             ' und 
        ' den Sekundenzeiger
        f2.Dispose()
        g.FillEllipse(Brushes.Red, 147, 147, 16, 16)                   ' den 
        ' roten Kreis
        PictureBox1.Image = bmp                                        ' nun in 
        ' die PictureBox
    End Sub
    Private Sub Form1_Resize(ByVal sender As Object, ByVal e As _
      System.EventArgs) Handles Me.Resize
        PictureBox1.Width = Me.Width - 30
        PictureBox1.Height = Me.Height - 50
    End Sub
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles MyBase.Load
        Me.Size = New Size(350, 350)
        PictureBox1.Location = New Size(10, 10)
        PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
        Timer1.Enabled = True
        Timer1.Interval = 1000
    End Sub
End Class
GPM
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Linien Rotation2.440Diggicell15.06.06 21:44
Re: Linien Rotation1.941GPM16.06.06 01:35
Re: Linien Rotation1.903Diggicell21.06.06 18:00
Re: Linien Rotation1.817Moderatorralf_oop21.06.06 18:56
Re: Linien Rotation1.878GPM21.06.06 19:07
Re: Linien Rotation2.165GPM21.06.06 19:45
Re: Linien Rotation2.171Diggicell05.07.06 14:52
Re: Linien Rotation1.945GPM05.07.06 17:47
Re: Linien Rotation1.873Diggicell05.07.06 18:52
Re: Linien Rotation1.814GPM05.07.06 19:28
Re: Linien Rotation1.874Diggicell05.07.06 19:48
Re: Linien Rotation1.836GPM05.07.06 20:07
Re: Linien Rotation2.121GPM05.07.06 18:34
Re: Linien Rotation1.946GPM05.07.06 19:20

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel