lehrkraefte:blc:informatik:glf22:python:graphics

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
lehrkraefte:blc:informatik:glf22:python:graphics [2022/11/17 09:59]
Ivo Blöchliger [Sinus/Cosinus]
lehrkraefte:blc:informatik:glf22:python:graphics [2022/11/25 08:09] (current)
Ivo Blöchliger [Sinus/Cosinus]
Line 78: Line 78:
 </hidden> </hidden>
  
-===== Sinus/Cosinus =====+===== Cosinus/Sinus =====
  
 Testen und Verstehen Sie folgendes Programm: Testen und Verstehen Sie folgendes Programm:
Line 122: Line 122:
  
 <WRAP todo> <WRAP todo>
-Bauen Sie die Funktion ''palpha'' im Code ein und verwenden Sie diese direkt im ''Circle''-Befehl (ersetzen Sie damit ''Point(x,y)''). Testen Sie Ihr Programm+Bauen Sie die Funktion ''palpha'' im Code ein und verwenden Sie diese direkt im ''Circle''-Befehl (ersetzen Sie damit ''Point(x,y)''). Testen Sie Ihr Programm.
 <hidden Lösungsvorschlag> <hidden Lösungsvorschlag>
 +<code python>
 from graphics import * from graphics import *
 from math import cos,sin,pi from math import cos,sin,pi
Line 147: Line 148:
 win.getMouse() # Pause to view result win.getMouse() # Pause to view result
 win.close()    # Close window when done win.close()    # Close window when done
 +</code>
 </hidden> </hidden>
 </WRAP> </WRAP>
Line 204: Line 206:
 </WRAP> </WRAP>
  
 +<WRAP todo>
 +Zeichnen Sie einen 5-Zack Stern: {{:python:pasted:20221117-100128.png}}.
 +</WRAP>
 +
 +<WRAP todo>
 +Verallgemeinern Sie Ihr Programm so, dass zwei Variablen ''n'' (Anzahl Zacken) und ''m'' (Wie viele Punkte eine Linie überspringt) definiert werden können. Hier das Beispiel für $n=11$ und $m=4$: {{:python:pasted:20221117-100359.png}}
 +<hidden Lösungsvorschlag>
 +<code python>
 +from graphics import *
 +from math import cos,sin,pi
 +
 +win = GraphWin("Hello", 600, 600)
 +win.setCoords(-2,-2,2,2)  # Koordinatensystem setzen
 +
 +def palpha(grad):
 +    bogenmass = grad/180*pi
 +    x = cos(bogenmass)
 +    y = sin(bogenmass)
 +    return Point(x,y)  # Resultat zurückgeben
 +
 +n = 11
 +m = 4
 +schritt = 360/n
 +for i in range(n):
 +    Line(palpha(i*schritt), palpha((i+m)*schritt)).draw(win)
 +
 +
 +win.getMouse() # Pause to view result
 +win.close()    # Close window when done
 +</code>
 +</hidden>
 +</WRAP>
 +
 +===== Weitere Aufgaben =====
 +Programmieren Sie ein Programm, das folgende Bilder erzeugt:
 +{{:python:pasted:20221117-102114.png}}
 +{{:python:pasted:20221117-102152.png}}
 +
 +<hidden Lösungsvorschlag>
 +<code python>
 +from graphics import *
 +from math import cos,sin,pi
 +
 +win = GraphWin("Hello", 600, 600)
 +
 +
 +def huellkurve():
 +    win.setCoords(-0.1,-0.1,1.1,1.1)  # Koordinatensystem setzen
 +    n=50
 +    for i in range(n+1):
 +        x = i/n
 +        Line(Point(x,0), Point(0,1-x)).draw(win)
 +
 +def spirale():
 +    win.setCoords(-1.1,-1.1,1.1,1.1)  # Koordinatensystem setzen
 +    umdrehungen = 5
 +    schritte = 400;
 +    for i in range(schritte):
 +        winkel = i/schritte*umdrehungen*2*pi
 +        winkel2 = (i+1)/schritte*umdrehungen*2*pi
 +        radius = i/schritte;
 +        Line(Point(radius*cos(winkel), radius*sin(winkel)), Point(radius*cos(winkel2), radius*sin(winkel2))).draw(win)
 +
 +
 +
 +def clickAndWait(titel="Hello"):
 +    global win    # Damit kann die Variable win auch verändert werden
 +    win.getMouse() # Pause to view result
 +    win.close()
 +    win = GraphWin(titel, 600, 600)
 +
 +
 +huellkurve()
 +clickAndWait("Spirale")
 +spirale()
 +
 +win.getMouse() # Pause to view result
 +
 +win.close()    # Close window when done
 +</code>
 +</hidden>
 ====== Setup ====== ====== Setup ======
 Es gibt einen Screencast: [[https://fginfo.ksbg.ch/~ivo/videos/informatik/22-23/06-setup-graphics-library-und-erstes-programm.mp4|direkter link]], oder [[https://bldsg-my.sharepoint.com/:v:/r/personal/ivo_bloechliger_ksbg_ch/Documents/06-setup-graphics-library-und-erstes-programm.mp4?csf=1&web=1&e=C6GjrS|Stream auf BLDSG Sharepoint]] Es gibt einen Screencast: [[https://fginfo.ksbg.ch/~ivo/videos/informatik/22-23/06-setup-graphics-library-und-erstes-programm.mp4|direkter link]], oder [[https://bldsg-my.sharepoint.com/:v:/r/personal/ivo_bloechliger_ksbg_ch/Documents/06-setup-graphics-library-und-erstes-programm.mp4?csf=1&web=1&e=C6GjrS|Stream auf BLDSG Sharepoint]]
 +
 +===== Windows =====
  
 Auf der Kommandozeile (git-bash) egal in welchem Ordner: Auf der Kommandozeile (git-bash) egal in welchem Ordner:
Line 211: Line 296:
 pip install graphics.py pip install graphics.py
 </code> </code>
 +===== Linux/Mac =====
 +<code bash>
 +sudo pip3 install tk graphics.py
 +</code>
 +
 +===== Alle Systeme =====
  
-Unter Linux/Mac ist ''pip3'' anstatt ''pip'' zu verwenden. 
  
 Gehen Sie in einen geeigneten Ordner (wo Ihre eigenen Dateien fürs Programmieren liegen) und öffnen Sie dort den Ordner mit VisualCode: Gehen Sie in einen geeigneten Ordner (wo Ihre eigenen Dateien fürs Programmieren liegen) und öffnen Sie dort den Ordner mit VisualCode:
Line 234: Line 324:
 </code> </code>
  
-Sollte dieser Code noch nicht funktionieren (Linux/Mac), ist noch folgender Befehl im Terminal nötig: 
-<code bash> 
-pip3 install tk 
-</code> 
  • lehrkraefte/blc/informatik/glf22/python/graphics.1668675588.txt.gz
  • Last modified: 2022/11/17 09:59
  • by Ivo Blöchliger