Buch Cover Buch Cover Buch Cover Buch Cover

Web-Code: - Webcode Help

Koch Kurven und andere Fraktale (Graphische Benutzerschnittstelle für Einplatz-Anwendungen)

Verwenden Sie wieder die Turtlegraphics um eine sog. Koch Kurve zu zeichnen. Eine Koch Kurve lebt auf einer Strecke und bildet auf jeder Gerade eine Zacke.

//TODO

Das ganze geschieht natürlich rekursiv, sodass auf jeder Zacke wieder eine Zacke gezeichnet wird und so weiter:

//TODO

Der Code zur ersten Zacke sieht dann wie folgt aus:

 

zacke() {
hansi.draw();
hansi.turnLeft(60);
hansi.draw();
hansi.turnRight(120);
hansi.draw();
hansi.turnLeft(60);
hansi.draw(); }

Um die zweite Grafik zu erhalten, ist im ersten Code jeder Aufruf von hansi.draw() durch den Zacken-Code zu ersetzen. Es drängt sich auf, anstelle von hansi.draw() wieder die Funktion zacke() aufzurufen. Ersetzen Sie also die draw()-Aufrufe durch zacke(). Überlegen Sie sich, wie die Rekursion beendet werden kann. Die innerste Rekursion verwendet dann natürlich wieder den Aufruf hansi.draw(), denn irgendwo muss ja schließlich gezeichnet werden.

 

0 Kommentare

Bitte melde dich an um einen Kommentar abzugeben

2 Lösung(en)

import math
import turtle

def koch(l):
    s = 10
    if l>s:
        koch(l/3)
        turtle.left(60)
        koch(l/3)
        turtle.right(120)
        koch(l/3)
        turtle.left(60)
        koch(l/3)
    else:
        turtle.fd(l)
        
turtle.setpos(-200,0)
turtle.clear()
turtle.pencolor("brown")
l = 450.0
koch(l)
    
                
import turtle

def koch(l):
    s = 10
    if l>s:
        koch(l/3)
        turtle.left(60)
        koch(l/3)
        turtle.right(120)
        koch(l/3)
        turtle.left(60)
        koch(l/3)
    else:
        turtle.fd(l)

# set turtle
turtle.bgcolor("orange")
turtle.setpos(-250,0)
turtle.clear()
turtle.pencolor("brown")
turtle.delay(0)

# start turtle
l = 450.0
koch(l)

# keep window open until user closes it
turtle.mainloop() 
                

Lösung von: Alex Groeg (Freies Lernen)

Aktionen

Bewertung

Durchschnittliche Bewertung:

Eigene Bewertung:
Bitte zuerst anmelden

Meta

Zeit:
Schwierigkeit: k.A.
Webcode: esdm-5dfj
Autor: Philipp G. Freimann (BBW (Berufsbildungsschule Winterthur) https://www.bbw.ch)

Download PDF

Download ZIP

Zu Aufgabenblatt hinzufügen