Bei der Suche mein Projekt zu Ende zu bringen tu ich dies Offenkundig hier. Der folgende Code der für eine Form Ausgabe nur zu kopieren und einzufügen ist, stellt ein Sechseck das sich von links nach rechts bewegt dar. Vor dem Rückweg wird das Sechseck mit Farbverlauf grün. Ich schaffe es mit meiner Logik nicht den Farbverlauf auch auf der linken Seite zu erreichen. Die Bewegung des Sechsecks sollte erhalten bleiben.
VB.NET-Quellcode
- Imports System.Drawing.Drawing2D
- Public Class Form1
- Dim diveIt As Integer
- Dim schritt As Integer
- Dim bud As Integer
- Dim CountUp As Boolean = True
- Dim t As New Timer() With {.Interval = 10}
- Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
- CenterToScreen()
- diveIt = 0
- bud = 0
- schritt = 1
- AddHandler t.Tick, Sub()
- If CountUp = True Then
- If diveIt <= 128 Then
- diveIt += schritt
- ElseIf bud < 253 Then
- bud = bud + 1
- Else
- CountUp = False
- End If
- End If
- If CountUp = False Then
- If bud > 0 Then
- bud = bud - 1
- ElseIf diveIt > 0 Then
- diveIt -= schritt
- Else
- CountUp = True
- End If
- End If
- Refresh()
- End Sub
- t.Start()
- End Sub
- Private Sub Form1_Paint(sender As Object, e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
- Dim Punkte(5) As Point
- Dim xSeite As Integer = Me.ClientSize.Width \ 10
- Dim ySeite As Integer = Me.ClientSize.Height \ 10
- Dim seitenDrehung As Double = 0
- Dim vieleckEigenschaft As Double = 2 * Math.PI / 6
- For i As Integer = 0 To Punkte.Length - 1
- Punkte(i).X = CInt(((xSeite + diveIt) + 49) + xSeite * Math.Cos(seitenDrehung))
- Punkte(i).Y = CInt((ySeite + 104) + ySeite * Math.Sin(seitenDrehung))
- seitenDrehung += vieleckEigenschaft
- Next i
- Dim lichtHupe As New GraphicsPath()
- lichtHupe.AddPolygon(Punkte)
- Dim einDimensional As New PathGradientBrush(lichtHupe)
- e.Graphics.DrawPolygon(Pens.Black, Punkte)
- einDimensional.CenterColor = Color.FromArgb(bud, 0, 255, 0)
- Dim colors As Color() = {Color.FromArgb(bud, 0, 255, 0)}
- einDimensional.SurroundColors = colors
- e.Graphics.FillPolygon(einDimensional, Punkte)
- End Sub
- End Class