Segmentierten Kreis zeichnen

18/02/2009 - 10:10 von Peter Brauer | Report spam
Hallo zusammen,

folgendes Anliegen liegt meinem Eintrag hier zu Grunde: Ich möchte gerne
einen Kreis zeichnen und gleichmàssig verteilt an dessen Rand x Namen
(variable Anzahl) schreiben. Der Kreis wird dadurch anders ausgedrückt auch
in x Segmente unterteilt. Unterteilen muß ich den Kreis also jeweils in 360
/ x Schritten. Also für 5 Segmente jeweils nach 72°.

Nun gehe ich so vor, daß ich zunàchst mal den Kreis zeichne, soweit kein
Problem. Nun muß ich aber irgendwie den Punkt auf dem Kreis bestimmen der
72° entspricht, dort könnte ich dann ja relativ leicht ein Rectangle
einzeichnen, einen Namen zeichnen und dann weiter gehen zu dem Punkt auf dem
Kreis, der 144° entspricht. Denke also mein zu Grunde liegendes Problem ist
es die jeweiligen Punkte auf dem Kreis zu bestimmen.

Oder denke ich zu kompliziert und ihr wißt, wie es viel einfacher geht?

Vielen Dank für eure Hilfe!

Nachfolgend der Ansatz mit dem ich den Kreis zeichne:

Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As
System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
Dim g As Graphics
Dim p As Pen
Dim r As Rectangle

g = e.Graphics
p = New Pen(System.Drawing.Color.Red, 5)
r = New Rectangle(10, 10, 200, 200)
g.DrawEllipse(p, r)
End Sub


Viele Grüße,

Peter
 

Lesen sie die antworten

#1 Peter Fleischer
18/02/2009 - 12:53 | Warnen spam
"Peter Brauer" schrieb im Newsbeitrag
news:gngjb8$cf2$03$

folgendes Anliegen liegt meinem Eintrag hier zu Grunde: Ich möchte gerne
einen Kreis zeichnen und gleichmàssig verteilt an dessen Rand x Namen
(variable Anzahl) schreiben. Der Kreis wird dadurch anders ausgedrückt
auch in x Segmente unterteilt. Unterteilen muß ich den Kreis also jeweils
in 360 / x Schritten. Also für 5 Segmente jeweils nach 72°.

Nun gehe ich so vor, daß ich zunàchst mal den Kreis zeichne, soweit kein
Problem. Nun muß ich aber irgendwie den Punkt auf dem Kreis bestimmen der
72° entspricht, dort könnte ich dann ja relativ leicht ein Rectangle
einzeichnen, einen Namen zeichnen und dann weiter gehen zu dem Punkt auf
dem Kreis, der 144° entspricht. Denke also mein zu Grunde liegendes
Problem ist es die jeweiligen Punkte auf dem Kreis zu bestimmen.

Oder denke ich zu kompliziert und ihr wißt, wie es viel einfacher geht?

Vielen Dank für eure Hilfe!

Nachfolgend der Ansatz mit dem ich den Kreis zeichne:

Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As
System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
Dim g As Graphics
Dim p As Pen
Dim r As Rectangle

g = e.Graphics
p = New Pen(System.Drawing.Color.Red, 5)
r = New Rectangle(10, 10, 200, 200)
g.DrawEllipse(p, r)
End Sub



Hi Peter,
du zeichnest keinen Kreis, sondern eine Ellipse. Im konkreten Fall wird das
ein Kreis mit dem Mittelpunkt {110,110} und einem Radius von 100. Mit den
einfachen triginimetrischen Punkten kann man auf einem Kreis die Punkte
bestimmen:

Dim p as New Point(110 + Math.Sin(w), 110 + Math.Cos(w))

Der Winkel w ist in Radian anzugeben. Das köbbte dan so aussehen:

Dim n = 5
Dim w = 0
Do
Dim p as New Point(110 + Math.Sin(w), 110 + Math.Cos(w))

w += 2 * Math.Pi / n
Loop While w < 2 * Math.Pi


Viele Grüsse
Peter

Ähnliche fragen