Wie kann ich einen Kreissektor in Python (Turtle) erstellen?

... komplette Frage anzeigen

1 Antwort

Hier das sollte funktionieren. Ich habe zwar nicht so viel ahnung von turtle sodass es durchaus sein kann, dass es eine einfachere Methode gibt aber mit hilfe von mathe ging es es eben auch.

Man zeichnet zuerst einen Halbkreis und geht dann zum anderen über und rechnet quasi dann einfach nur rückwärts.

import turtle
import math as m

def paintSection(degree, radiusOuter, radiusInner, offset): phi = 0.0 alpha = 1 # um den sektor dann zu schließen müssen wir die erste berechnete # koordinate speichern firstCord = None # der offset legt den start winkel fests sectionDegree = 0 + offset # bevor wir starten müssen wir turtle erstmal das malen verbieten turtle.up()
while sectionDegree <= degree + offset: # wir rechnen sectionDegree in radiants um phi = sectionDegree * (m.pi/180.0) # berechnung der einzelnen koordinaten x = radiusOuter * m.cos(phi) y = radiusOuter * m.sin(phi) # move turtle zur richtigen position turtle.setpos(x, y) if not turtle.isdown(): firstCord = (x, y) turtle.begin_fill() turtle.down()
# erhöhe den winkel sectionDegree += alpha
while sectionDegree >= offset: # wir rechnen sectionDegree in radiants um phi = sectionDegree * (m.pi/180.0) # berechnung der einzelnen koordinaten x = radiusInner * m.cos(phi) y = radiusInner * m.sin(phi) # move turtle zur richtigen position turtle.setpos(x, y) # verringere den winkel sectionDegree -= alpha
# nun können wir den sektor schließen turtle.setpos(*firstCord) # turtle.end_fill()

offset = 0 # der offset muss nicht unbedingt sein section = 360/6 for n in range(3): paintSection(section, 50, 15, offset) offset+=section*2 # da wir eine section überspringen wollen, nehmen wir sie *2

Kann man vllt noch kürzen, sollte aber schon mal ein Anfang sein.

Möchtest du das Symbol nicht in der Mitte haben, musst du noch den Mittelpunkt zu den jeweiligen Koordinaten dazu rechnen.

Regards,

Life

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?