Mit Picture-Box kreis zeichnen

Dörti.Hermi

Erfahrenes Mitglied
Hallo,
folgendes Problem: Programmiere gerade ein Spiel, mit 2 oder 3 Spielern. Drückt z.B: der 1. Spieler die Pfeiltaste nach links, soll seine "Schlange" beginnen einen Kreis mit einem bestimmten Radius nach links anfangend zu fahren, das gleiche bei rechts nur umgekehrt. Tastaturauswertung funktioniert soweit.
Zeichnet wird in einer Picturebox, bei der einzelne Pixel mit PSet gesetzt werden. Die Eigenschaft "DrawWidth" ist auf 5 gesetzt, dass gleich ein "größeres Pixel" gesetzt wird.

Kann mir jemand helfen?

lg
 
Also ich gehe davon aus, das du eine Funktion suchst mit der du einen Kreis zeichen kannst.
Ich habe da gerade mal eine geschrieben, die sollte eigendlich für deine Zwecke reichen.
Ich habe dazu ein kleines Beispielprogramm mit einer PictureBox erstellt, in die über einen Timer ein Kreis gezeichnet wird.

Modul in dem sich die Globalen Variablen und die Funktion befindet.
Code:
Option Explicit

Public Mittelpunktx As Double
Public Mittelpunkty As Double
Public iLoop As Integer

Public Function Kreis(iWinkel As Integer, iradius As Integer)
  
  Dim Px As Double
  Dim Py As Double
  Dim alpha As Double
  alpha = iWinkel * 3.14 / 180
  Px = Cos(alpha) * iradius
  Py = Sin(alpha) * iradius
  Mittelpunktx = Mittelpunktx + Px 'Hier das Plus in Minus
  Mittelpunkty = Mittelpunkty + Py 'um die Zeichen Richtung
                                                   'zu ändern.
  
End Function



Und der Code vom Formular:

Code:
Option Explicit

Private Sub cmdStart_Click()
  
  Me.Timer1.Enabled = True
  
End Sub

Private Sub cmdStop_Click()
  
  Me.Timer1.Enabled = False
  
End Sub

Private Sub Form_Load()
  
  Me.Picture1.DrawWidth = 5 
  iLoop = 0
  Mittelpunktx = 2000 'Hier wird der Punkt festgelegt an
  Mittelpunkty = 2000 'dem der Kreis startet.
  
End Sub

Private Sub Timer1_Timer()
  
  If iLoop <= 360 Then        'Hier wird angegeben wieviel vom Kreis gezeichnet werden soll 
                                        '360 steht hier für einen ganzen Kreis.
                                        '180 würde nur einen halben Kreis zeichnen. 
  
  Kreis iLoop, 5                 'Hier wird die Kreisfunktion aufgerufen. Dabei ist iLoop die
                                       'Gradzahl und 5 der Radius, dieser kann beliebig verändert
                                       'werden.

  Me.Picture1.PSet (Mittelpunktx, Mittelpunkty) 'Hier wird der Punkt gesetzt.
  End If
  iLoop = iLoop + 1

End Sub



Die Funktion müsstest du dir eigendlich relativ einfach für dein Programm anpassen können.

Ich hoffe es hilft dir.
 

Neue Beiträge

Zurück