vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 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: 05.07.06 19:20

3. Beides verbinden

Will man das Quadrat nun aber an seiner Position drehen, muss man beide Transformationen
miteinander verbinden.
Zuerst verschiebt man das Quadrat mit TranslateTransform in den Nullpunkt.
Dann rotiert man es um einen Winkel.
Mit MatrixOrderAppend wird eine Transformation an eine Vorherige angehangen.
Nun muss die Verschiebung nur noch zurückgenommen werden.
Damit dreht das Quadrat sich auf der Stelle.
Imports System.Drawing.Drawing2D
Public Class Form1
    Dim rowinkel As Int32 = 0   ' Rotationswinkel
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles MyBase.Load
        PictureBox1.Location = New Point(5, 5)
        PictureBox1.Size = New Size(310, 310)
        PictureBox1.BackColor = Color.Black
    End Sub
    Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As _
      System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
        With e.Graphics
            .SmoothingMode = Drawing2D.SmoothingMode.HighQuality       ' mit 
            ' AntiAliasing sieht es besser aus
            .TranslateTransform(-154, -154)                            ' das 
            ' Quadrat in den Nullpunkt schieben
            .RotateTransform(rowinkel, MatrixOrder.Append)             ' nun 
            ' die Drehung (anhängen)
            .TranslateTransform(154, 154, MatrixOrder.Append)          ' 
            ' Verschiebung zurücknehmen (anhängen)
            .FillRectangle(Brushes.Blue, 100, 100, 110, 110)           ' das 
            ' blaue Quadrat
            .FillRectangle(Brushes.Yellow, 105, 105, 10, 10)           ' die 
            ' gelbe Markierung
        End With
    End Sub
        Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As _
          System.EventArgs) Handles Button1.Click
        For wi As Int32 = 0 To 360
            rowinkel = wi                        ' der Winkel zwischen 0 und 
            ' 360 Grad
            Me.Text = wi.ToString & " Grad"      ' den Winkel anzeigen
            System.Threading.Thread.Sleep(20)    ' eine kleine Pause
            PictureBox1.Refresh()                ' die PictureBox neu zeichnen
        Next
    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.947GPM05.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