kurse:efcomputergrafik:kw34

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
kurse:efcomputergrafik:kw34 [2019/08/20 08:52]
Marcel Metzler [Apfelmännchen]
kurse:efcomputergrafik:kw34 [2019/08/21 15:18] (current)
Marcel Metzler [Was ist ein Fraktal und was ist eine gebrochene Dimension?]
Line 177: Line 177:
   - Unterprogramme mit Parameterübergabe, wird i.d.R. Funktion genannt   - Unterprogramme mit Parameterübergabe, wird i.d.R. Funktion genannt
   - Unterprogramm mit Parameterübergabe und Rückgabewert, wird i.d.R. auch Funktion genannt   - Unterprogramm mit Parameterübergabe und Rückgabewert, wird i.d.R. auch Funktion genannt
-==Zu 1.==+===Zu 1. Unterprogramme ohne Parameterübergabe===
 <code python> <code python>
 from gturtle import * from gturtle import *
Line 190: Line 190:
 dreieck() dreieck()
 </code> </code>
-Das Schlüsselwort ist **def**, gefolgt vom Namen() des Unterprogramms. Achtung den Doppelpunkt nicht vergessen. Das eigentliche Unterprogramm folgt dann **eingerückt**. Das Unterprogramm kann nun von einer beliebigen Stelle im Hauptprogramm aufgerufen werden. +Das Schlüsselwort ist **def**, gefolgt vom Namen() des Unterprogramms. Achtung den Doppelpunkt nicht vergessen. Das eigentliche Unterprogramm folgt dann **eingerückt**. Das Unterprogramm kann nun von einer beliebigen Stelle im Hauptprogramm aufgerufen werden. 
 + 
 +===Zu 2. Unterprogramme mit Parameterübergabe=== 
 +Schöner wäre es aber, wenn die Seitenlänge nicht fix, sondern als Parameter übergeben werden kann. Dies geschieht wie folgt: 
 +<code python> 
 +from gturtle import * 
 +def dreieck(l): 
 +    for i in range(3): 
 +        forward(l) 
 +        left(120) 
 + 
 +makeTurtle() 
 +dreieck(100) 
 +setPos(100,50) 
 +dreieck(50) 
 +</code> 
 +Bei der Definition def dreieck(l): seht eine Variable und beim Aufruf dreieck(50) steht der konkrete Wert.  
 + 
 +Beim Aufruf dreieck(50) wird der Parameterwert 50 mit übergeben. Im Unterprogramm wird der Variablen l der Wert 50 zugewiesen und im Befehl forward steht keine Konstante, sondern l und l ist gleich 50. 
 + 
 +Noch schöner wäre es, wenn nicht nur die Länge, sonder die Anzahl der Ecken übergeben werden kann. Es muss ja nicht immer ein Dreieck sein. Siehe dazu folgendes Programm. 
 +<code python> 
 +from gturtle import * 
 +def nEck(n,l): 
 +    if n>2: 
 +        for i in range(n): 
 +            forward(l) 
 +            left(360/n) 
 +         
 +makeTurtle() 
 +nEck(3,100) 
 +setPos(100,50) 
 +nEck(4,50) 
 +setPos(25,125) 
 +nEck(5,80) 
 +</code> 
 +Was geschieht, wenn wir ein 0-Eck, ein 1-Eck oder ein 2-Eck zeichnen wollen. Nun n muss grösser als 2 sein, sonst wird nichts gezeichnet. Falls aber gekommen wir auch eine Rückmeldung vom Unterprogramm? Nein noch nicht. 
 +===Zu 3. Unterprogramme mit Parameterübergabe und Rückgabewert=== 
 +<code python Prog_8.py> 
 +from gturtle import * 
 +def nEck(n,l): 
 +    if n>2: 
 +        for i in range(n): 
 +            forward(l) 
 +            left(360/n) 
 +        return(1) 
 +    return(0)  
 +makeTurtle() 
 +ans=nEck(3,100) 
 +if ans!=1: 
 +    print("Es ist ein Fehler aufgetreten!"
 +setPos(100,50) 
 +if nEck(1,50)!=1:print("Es ist ein Fehler aufgetreten!"
 +setPos(25,125) 
 +ans=nEck(5,80) 
 +</code> 
 + 
 +**Aufgabe 6** 
 +  - Arbeite die drei Fälle sorgfältig durch. Dann du die drei Fälle ohne nachzuschauen erklären? Falls nicht, schau sie nochmals an. 
 +  - Ändere das obige Programm nach belieben ab und schaue was dabe herauskommt. 
 +  - Füge eine Meldung hinzu, falls das n-Eck gezeichnet werden konnte. 
 +  - Füge eine Meldung hinzu, falls alle n-Ecke gezeichnet werden konnten.  
 + 
 +====Was ist ein Fraktal und was ist eine gebrochene Dimension?==== 
 +Siehe dazu folgendes Video vom Kanal [[https://www.youtube.com/watch?v=gB9n2gHsHN4|3Blue1Brown]]. 
 + 
 +Als weitere Quelle hier noch ein altes Skript von der ETHZ{{ :kurse:efcomputergrafik:fraktale_ethz.pdf |}} 
 + 
 +Wer Interesse hat, kann das Buch **SuperFractals**, Pattern of Nature von Michael F. Baransley, ISBN-13 987-0-521-84493-2 von mir ausleihen. 
 + 
 +**Aufgabe 7** 
 + 
 +* Was ist ein Fraktal? 
 +<hidden> 
 +Ein Objekt mit einer gebrochenen Dimension, d.h. $D\not\in \mathbb{N}$. 
 +</hidden> 
 +* Kennst du die Dimension des Serpinski Dreiecks bestimmen? 
 +<hidden> 
 +Verkleinerung der Strecke um den Faktor 2, erzeugt eine Verkleinerung der Fläche um den Faktor 3.  $2^D=3 \quad\rightarrow\quad D=log_2(3)=1.585$   
 +</hidden> 
 +* Kennst du eine allgemeine Formel zur Dimensionsbestimmung? 
 +<hidden> 
 +Du findest eine am Schluss des Skript Fraktale von der ETHZ. 
 +</hidden>
  • kurse/efcomputergrafik/kw34.1566283952.txt.gz
  • Last modified: 2019/08/20 08:52
  • by Marcel Metzler