Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| lehrkraefte:snr:mathematik:klasse-2:2022-23:python-koordinatengrafik [2022/12/20 19:04] – [Aufgaben 1 und 2: Grafik-Bibliothek "kantigrafik" herunterladen und wesentliche Befehle kennenlernen] Olaf Schnürer | lehrkraefte:snr:mathematik:klasse-2:2022-23:python-koordinatengrafik [2023/01/31 16:37] (current) – [Aufgabe 5: Funktionsgraphen zeichnen (etwa Sinus, Cosinus, Tangens)] Olaf Schnürer | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ~~NOTOC~~ | ||
| + | |||
| + | ====== Koordinatengrafik mit Python ====== | ||
| + | |||
| + | ===== Aufgaben 1 und 2: Grafik-Bibliothek " | ||
| + | |||
| + | <WRAP center round todo> | ||
| + | Speichere die folgende Grafik-Bibliothek unter dem Namen '' | ||
| + | |||
| + | Neue Version vom 15.12.2022: | ||
| + | |||
| + | {{ : | ||
| + | </ | ||
| + | |||
| + | <WRAP center round box> | ||
| + | Wir verwenden diese Bibliothek im Folgenden als black box, so wie wir etwa die Turtle-Bibliothek als black box verwendet haben. | ||
| + | |||
| + | Ich habe diese (im wesentlichen auf '' | ||
| + | </ | ||
| + | |||
| + | |||
| + | <WRAP center round todo> | ||
| + | Versuche anhand des folgenden Programms die wesentlichen Funktionen der Bibliothek '' | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | <hidden Bemerkung/ | ||
| + | Am Ende dieser Seite befindet sich eine Dokumentation der Bibliothek '' | ||
| + | </ | ||
| + | |||
| + | <hidden Mögliche Hilfen, falls das Programm nicht läuft:> | ||
| + | * pygame installieren! In der Kommandozeile (cmd): '' | ||
| + | * Manchmal sind mehrere Versionen von Python installiert. In VS-Code kann man per " | ||
| + | * ??? | ||
| + | * beim Nachbarn mitprogrammieren | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ===== Aufgabe 3: Rechtwinkliges Dreieck mit Umkreis zeichnen ===== | ||
| + | |||
| + | <WRAP center round todo> | ||
| + | <code python rechtwinkliges-dreieck-mit-umkreis.py> | ||
| + | from kantigrafik import * | ||
| + | zeichenfenster(-4, | ||
| + | a = 4 | ||
| + | b = 3 | ||
| + | |||
| + | # Hier deinen Code ergänzen! | ||
| + | |||
| + | zeige() | ||
| + | warte_auf_klick() | ||
| + | </ | ||
| + | |||
| + | Ergänze das obige Python-Programm so, dass ein rechtwinkliges Dreieck gezeichnet wird, dessen Katheten parallel zu den Koordinatenachsen sind und Länge '' | ||
| + | |||
| + | Eine Skizze mag helfen. | ||
| + | |||
| + | <hidden Hinweis:> | ||
| + | Nimm als Eckpunkte des Dreiecks den Ursprung $(0,0)$ und den Punkt $(a,0)$ und als dritten Punkt ... (bitte selbst überlegen, etwa per Skizze). </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | Bonusaufgabe: | ||
| + | |||
| + | <hidden Hinweis> | ||
| + | Denke an einen griechischen Mathematiker, | ||
| + | |||
| + | Die Koordinaten des Mittelpunkts des Umkreises sind dann relativ einfach zu berechnen. | ||
| + | <hidden Hinweis zum Radius des Umkreises> | ||
| + | Pythagoras!</ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | <WRAP center round box> | ||
| + | Je nach Zeichnung mag Koordinatengrafik oder Turtlegrafik besser geeignet sein. | ||
| + | |||
| + | Die obige Zeichnung (rechtwinkliges Dreieck mit Umkreis) ist meinem Geschmack nach deutlich leichter mit Koordinatengrafik als mit Turtle-Grafik zu zeichnen - wer eine kleine Herausforderung benötigt, zeichne Dreieck samt Umkreis mit der Turtle! | ||
| + | |||
| + | <hidden Hinweis> | ||
| + | Für das Dreieck: '' | ||
| + | |||
| + | Für den Umkreis: Finde den richtigen Startwinkel! (Der Radius ist hoffentlich mittlerweile klar.) | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ===== Aufgabe 4: Konzentrische n-Ecke zeichnen ===== | ||
| + | |||
| + | <WRAP center round todo> | ||
| + | Zeichne mit Koordinatengrafik die folgende Figur (fünf konzentrische Fünfecke) bzw. allgemeiner einige konzentrische $n$-Ecke. | ||
| + | |||
| + | Hinweis: Zeichne zuerst ein Fünfeck, dessen Umkreis den Radius eins hat. | ||
| + | |||
| + | (Lösung vermutlich gemeinsam. Benötigt Trigonometrie und die '' | ||
| + | |||
| + | {{: | ||
| + | |||
| + | ---- | ||
| + | |||
| + | <hidden Mögliche Lösung> | ||
| + | <code python konzentrische-n-ecke.py> | ||
| + | from kantigrafik import * | ||
| + | from math import * | ||
| + | |||
| + | n = 5 | ||
| + | |||
| + | zeichenfenster(-6, | ||
| + | |||
| + | farbe(GRAU) | ||
| + | raster() | ||
| + | farbe(WEISS) | ||
| + | x_achse() | ||
| + | y_achse() | ||
| + | |||
| + | farbe(ROT) | ||
| + | alpha = 360 / n | ||
| + | alpha_im_bogenmass = alpha / 180 * pi | ||
| + | for radius in range(2, 6): | ||
| + | for i in range(n): | ||
| + | gefuellter_kreis(radius * cos(i * alpha_im_bogenmass), | ||
| + | linie(radius * cos(i * alpha_im_bogenmass), | ||
| + | radius * cos((i+1) * alpha_im_bogenmass), | ||
| + | zeige() | ||
| + | speichere(" | ||
| + | warte_auf_klick() | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | <WRAP center round box> | ||
| + | Bekanntlich kann man leicht ein einzelnes $n$-Eck mit Turtle-Grafik zeichnen (aber schon die Berechnung des Umkreisradius ist nicht ganz offensichtlich. | ||
| + | Wer noch nicht von den Vorteilen von Koordinatengrafik überzeugt ist, zeichne einmal einige konzentrische $n$-Ecke mit Turtlegrafik. | ||
| + | </ | ||
| + | |||
| + | ===== Aufgabe 5: Funktionsgraphen zeichnen (etwa Sinus, Cosinus, Tangens) ===== | ||
| + | |||
| + | (mit 2rG gemacht, mit 2aLIM noch nicht) | ||
| + | |||
| + | <WRAP center round todo> | ||
| + | Zeichne die Graphen von Sinus, Cosinus und Tangens in unterschiedlichen Farben mit Koordinatengrafik. | ||
| + | Du darfst natürlich auch den Graphen einer beliebigen anderen Funktion deiner Wahl zeichnen. | ||
| + | |||
| + | <hidden Hier ist ein mögliches Programm-Gerüst> | ||
| + | <code python graphen-zeichnen.py> | ||
| + | from kantigrafik import * | ||
| + | # Lädt unter anderem die trigonometrischen Funktionen | ||
| + | # sin(...), cos(...), tan(...), aber auch die Kreiszahl pi. | ||
| + | from math import * | ||
| + | |||
| + | # minimale x-Koordinate | ||
| + | MINX = -10 | ||
| + | # maximale x-Koordinate | ||
| + | MAXX = 10 | ||
| + | |||
| + | # minimale y-Koordinate | ||
| + | MINY = -6 | ||
| + | # maximale y-Koordinate | ||
| + | MAXY = 6 | ||
| + | |||
| + | # Länge einer Einheit im Koordinatensystem in Pixeln | ||
| + | PIXEL_PRO_EINHEIT = 80 | ||
| + | |||
| + | zeichenfenster(MINX, | ||
| + | |||
| + | # ... und hier darfst du deinen Code ergänzen. | ||
| + | |||
| + | zeige() | ||
| + | speichere(" | ||
| + | warte_auf_klick() | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Optional: Gib neben der üblichen Bogenmass-Skala wie im Bild auch die Grad-Skala an. | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ===== Die Befehle der Bibliothek '' | ||
| + | |||
| + | <WRAP center round info> | ||
| + | Die wichtigsten Befehle der Bibliothek '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | <WRAP center round important> | ||
| + | Zum Anzeigen des bereits Gezeichneten muss man den Befehl '' | ||
| + | </ | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | </ | ||
| + | |||
| + | |||
| + | ====== Link zur Kursseite ====== | ||
| + | |||
| + | Link zur | ||
| + | * [[lehrkraefte: | ||
| + | * [[lehrkraefte: | ||
| + | |||
| + | |||
| + | |||
| + | |||