Hey Communtiy.
Ich habe eigentlich eine ganz einfache Frage, aber es funktoniert nicht -.-
Ich möchte einen Kreis zeichnen, und auf diesen in gleichmäßigen Abständen 5 Punkte (kleine Kreise) zeichnen (--> 360° / 5 = 72°).
Leider sind die Punkte nicht auf dem Kreis -.-
Btw verstehe ich nicht warum ich den Winkel in Bogenmaß umwandeln muss für die trig. Funktionen, aber ohne sieht es noch 'schlimmer' aus
Ich habe eigentlich eine ganz einfache Frage, aber es funktoniert nicht -.-
Ich möchte einen Kreis zeichnen, und auf diesen in gleichmäßigen Abständen 5 Punkte (kleine Kreise) zeichnen (--> 360° / 5 = 72°).
VB.NET-Quellcode
- Private Sub Form1_Paint(sender As Object, e As PaintEventArgs) Handles Me.Paint
- Dim margin As Integer = 10 'Damit ein 10px Abstand zur Formborder besteht
- Dim rect As Rectangle = New Rectangle(margin, margin, Me.ClientSize.Width - 2 * margin, Me.ClientSize.Height - 2 * margin)
- Dim radius As Integer = CInt(rect.Width / 2)
- Using g As Graphics = e.Graphics
- g.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic
- g.DrawEllipse(New Pen(Brushes.DarkGray, 3), rect) 'Circle
- For angle As Integer = 0 To 360 Step 72
- Dim a As Double = ToRadians(angle + 270) 'Damit der erste Punkt oben in der Mitte ist
- Dim center As New PointF(CSng(rect.Width / 2), CSng(rect.Height / 2))
- Dim pt As New PointF(center.X + radius * CSng(Math.Cos(a)), _
- center.Y + radius * CSng(Math.Sin(a)))
- g.FillEllipse(Brushes.Red, New RectangleF(pt.X, pt.Y, 5, 5))
- Next
- End Using
- End Sub
- Function ToRadians(deg As Double) As Double
- Return (2 * Math.PI) / 360 * deg
- End Function
Leider sind die Punkte nicht auf dem Kreis -.-
Btw verstehe ich nicht warum ich den Winkel in Bogenmaß umwandeln muss für die trig. Funktionen, aber ohne sieht es noch 'schlimmer' aus
»There's no need to "teach" atheism. It's the natural result of education without indoctrination.« — Ricky Gervais