VB.net TranslateTransform

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • VB.net TranslateTransform

    Hallo liebe Foristen, dieses Board hat zwar anscheinend nichts mit VB.net zu tun , dennoch ist das php resource board gewohnheitsmäßig das einzige Board was mir immer eine Antwort auf meine Fragen liefern kann. Und zwar handelt es sich um eine Analog uhr die ich gerne verstehen würde. Ich würde gerne wissen WAS GENAU die translateTransform funktionen nach der zweiten "Next wi" anweisung tut. Ich wäre euch sehr Dankbar wenn mir einer dabei helfen könnte.

    Vielen Dank im VOrraus

    Code:
    Imports System.Drawing.Drawing2D
    Public Class Analoguhr
        Inherits System.Windows.Forms.Form
    
    #Region " Vom Windows Form Designer generierter Code "
    
        Public Sub New()
            MyBase.New()
    
            ' Dieser Aufruf ist für den Windows Form-Designer erforderlich.
            InitializeComponent()
    
            ' Initialisierungen nach dem Aufruf InitializeComponent() hinzufügen
    
        End Sub
    
        ' Die Form überschreibt den Löschvorgang der Basisklasse, um Komponenten zu bereinigen.
        Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
            If disposing Then
                If Not (components Is Nothing) Then
                    components.Dispose()
                End If
            End If
            MyBase.Dispose(disposing)
        End Sub
    
        ' Für Windows Form-Designer erforderlich
        Private components As System.ComponentModel.IContainer
    
        'HINWEIS: Die folgende Prozedur ist für den Windows Form-Designer erforderlich
        'Sie kann mit dem Windows Form-Designer modifiziert werden.
        'Verwenden Sie nicht den Code-Editor zur Bearbeitung.
        Friend WithEvents Timer1 As System.Windows.Forms.Timer
        Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox
        <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
            Me.components = New System.ComponentModel.Container()
            Me.Timer1 = New System.Windows.Forms.Timer(Me.components)
            Me.PictureBox1 = New System.Windows.Forms.PictureBox()
            Me.SuspendLayout()
            '
            'Timer1
            '
            '
            'PictureBox1
            '
            Me.PictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D
            Me.PictureBox1.Location = New System.Drawing.Point(16, 16)
            Me.PictureBox1.Name = "PictureBox1"
            Me.PictureBox1.Size = New System.Drawing.Size(264, 232)
            Me.PictureBox1.TabIndex = 0
            Me.PictureBox1.TabStop = False
            '
            'Analoguhr
            '
            Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
            Me.ClientSize = New System.Drawing.Size(328, 301)
            Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.PictureBox1})
            Me.Name = "Analoguhr"
            Me.Text = "Analoguhr von Niklas Steinmeier"
            Me.ResumeLayout(False)
    
        End Sub
    
    #End Region
    
    
    
    
        Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    
            Me.Text = DateTime.Now
    
    
            Dim bmp As Bitmap = New Bitmap(310, 310)
            Dim g As Graphics = Graphics.FromImage(bmp)                    'G platz zum Zeichnen
            Dim gFont As New Font("Comic Sans MS", 20, FontStyle.Bold)        '  schriftart  Stundenzahlen
            Dim f1 As Pen = New Pen(Color.Gold, 10)                      ' farbe minutenzeiger
            Dim f2 As Pen = New Pen(Color.Gold, 3)                          ' farbe 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
            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.Black, 1, 1, 308, 308)                    ' schwarze rand
            g.FillEllipse(Brushes.Red, 15, 15, 280, 280)                 ' roter rand
            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.Gold, x, y, 3, 3)                  ' 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)                             ' Stundenzeiger zeichnen
            g.ResetTransform()
            '.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)                             'Minutenenzeiger zeichnen
            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)                             ' Sekundenzeiger
            f2.Dispose()
            g.FillEllipse(Brushes.Red, 147, 147, 16, 16)                   ' ziffernblatt
            PictureBox1.Image = bmp                                        ' nun in die PictureBox
        End Sub
        Private Sub Form1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.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)
            Me.PictureBox1.Location = New System.Drawing.Point(10, 10)
    
    
            PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
            Timer1.Enabled = True
            Timer1.Interval = 1000
        End Sub
    
       
    
        
        
    End Class
    "Alkohol ist keine Antwort, aber man vergisst beim Trinken die Frage."
    (Henry Mon)


    http://www.diggicell.de

    Nun auch mit neuen Inhalten

  • #2
    Hi,

    genau verstanden habe ich es auch nicht, aber ich glaube, es steht hier bzw hier.

    Falls du das schon kanntest, bitte ich um entschuldigung
    ich glaube

    Kommentar

    Lädt...
    X