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:54]
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 192: Line 192:
 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: Schöner wäre es aber, wenn die Seitenlänge nicht fix, sondern als Parameter übergeben werden kann. Dies geschieht wie folgt:
 <code python> <code python>
Line 205: Line 206:
 dreieck(50) dreieck(50)
 </code> </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.1566284090.txt.gz
  • Last modified: 2019/08/20 08:54
  • by Marcel Metzler