![]() |
|||
| HSG |
|
In der Regel wird man auf Papier eine Ablaufskizze der Figur anfertigen. An dieser Skizze kann man dann das Programm ablesen.

# -*- coding: iso-8859-1 -*-
# mk, 6.9.08
# aktualisiert von Birk Dietrich 18.02.2021
from turtle import *
from math import sqrt
def hdn(a):
lt(90)
fd(a)
rt(90)
fd(a)
lt(135)
fd(a/sqrt(2))
lt(90)
fd(a/sqrt(2))
lt(90)
fd(sqrt(2)*a)
lt(135)
fd(a)
lt(135)
fd(sqrt(2)*a)
lt(135)
fd(a)
circle(radius, extent=None, steps=None)
Zeichne einen Kreis(bogen) mit gegebenem Radius
Der Kreismittelpunkt ist radius Einheiten links von der
Turtle; extent - ein Winkel - gibt an, welcher Teil des
Kreises gezeichnet wird. Wenn extent fehlt, wird ein
voller Kreis gezeichnet.
-
Wenn extent kein voller Kreis ist, dann ist ein Endpunkt
des Bogens die aktuelle Turtle-Position. Wenn der Radius
positiv ist, wird der Bogen im Gegenuhrzeigersinn gezeichnet.
Für negative Radien wird der wird der Bogen im Uhrzeigersinn
gezeichnet. Nachdem Zeichnen des Bogens ist die Orientierung
der Turtle um extent geändert.
-
Da der Kreis durch ein eingeschriebenes reguläres Polygon
angenähert wird, bestimmt steps die Anzahl der Schritte, die
dafür verwendet wird. Wenn steps nicht angegeben wird, wird
automatisch ein (hoffentlich passender) Wert ermittelt.
---
Arguments: Zahl,
Optionale Argumente: Zahl, integer
Aufruf: circle(<zahl>) # voller Kreis
--oder: circle(<zahl>, <zahl>) # Bogen
--oder: circle(<zahl>, <zahl>, <integer>)
Beispiel (für ein Turtle-Objekt namens turtle):
>>> turtle.circle(50)
>>> turtle.circle(120, 180) # semicircle
Kleine Versuche mit dem Befehl 'circle' in der Shell dienen dem Verständnis!

# -*- coding: iso-8859-1 -*-
# mk, 6.9.08
from turtle import *
def yinyang(a):
# a = Durchmesser der Figur
# rechte Teilfigur, schwarz gefüllt
fillcolor(0,0,0)
fill(True)
circle(-a/2.0,180)
circle(-a/4.0,180)
circle(a/4.0,180)
fill(False)
# Begrenzung linke Teilfigur
circle(a/2.0,180)
# Radius der kleinen Kreise
r = a*0.08
# Weg zu weißem Kreis
pu()
lt(90)
fd(a/4.0+r)
lt(90)
pd()
# weißer Kreis
fillcolor(1,1,1)
fill(True)
circle(r,360)
fill(False)
# Weg zu schwarzem Kreis
pu()
rt(90)
fd(a/2.0)
lt(90)
pd()
# schwarzer Kreis
fillcolor(0,0,0)
fill(True)
circle(r)
fill(False)
# Weg zum Anfang
pu()
rt(90)
fd(a/4.0-r)
rt(90)
pd()
# -*- coding: iso-8859-1 -*-
# Autor: mk Datum: 7.8.08
# Vorbereitungen
from turtle import *
def n_eck(n,a):
w = 360.0/n
for i in range(n):
fd(a)
lt(w)
def nm_eck(n,a):
w = 360.0/n
for i in range(n):
n_eck(n,a)
lt(w)
# Hauptprogramm
reset()
tracer(False)
bgcolor(0,0,0)
pensize(2)
pencolor(1,0,0)
nm_eck(36,20)
tracer(True)
mainloop()
