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:povray:trafos [2023/06/28 07:05] – [Aufgabe 1] Olaf Schnürer | lehrkraefte:snr:mathematik:klasse-2:2022-23:povray:trafos [2023/06/28 07:07] (current) – [Aufgabe 1: Translationen, Rotationen und Streckungen (am Beispiel eines Torus)] Olaf Schnürer | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ~~NOTOC~~ | ||
| + | ====== Transformationen ====== | ||
| + | ===== Aufgabe 1: Translationen, | ||
| + | |||
| + | Ein **Torus** ist eine Art | ||
| + | * Veloschlauch (genau dessen äussere Oberfläche). | ||
| + | Alternativ ist ein Torus die Oberfläche eines Rettungsrings oder eines Donuts. | ||
| + | |||
| + | <WRAP center round todo> | ||
| + | Öffne die folgende Datei im POV-Ray-Editor. | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | * Verstehe, wie das Objekt '' | ||
| + | * Translation = Verschiebung: | ||
| + | <code povray> | ||
| + | translate <0, -2, 3> | ||
| + | </ | ||
| + | * Teste auch Verschiebungen um andere Vektoren, um den Befehl '' | ||
| + | * Rotation = Drehung: Mit dem Befehl '' | ||
| + | <code povray> | ||
| + | rotate <30, 0, 0> // Drehung um die x-Achse um 30 Grad und um 0 Grad um die anderen beiden Achsen. | ||
| + | </ | ||
| + | * Teste auch Drehungen um andere Winkel und um andere Koordinatenachsen, | ||
| + | * Erklärung: | ||
| + | * Der Befehl '' | ||
| + | * Alle Drehungen sind **rechtsdrehend**; | ||
| + | * Empfehlung: Jeweils nur um eine Koordinatenachse drehen | ||
| + | * Skalierung = Streckung: Mit dem Befehl '' | ||
| + | <code povray> | ||
| + | scale 0.5 | ||
| + | </ | ||
| + | * Teste auch andere Streckfaktoren. | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== Aufgabe 1 ==== | ||
| + | |||
| + | <WRAP center round todo> | ||
| + | (Ausgehend von der in der vorigen Aufgabe verwendeten Datei:) | ||
| + | |||
| + | Verwende die gerade erlernten Transformationsbefehle '' | ||
| + | |||
| + | * einen ersten Torus (mit Schachbrettmuster wie in der vorigen Aufgabe), der **auf** der $x$-$y$-Ebene liegt (d.h. diese berührt); | ||
| + | * einen zweiten, genauso grossen Torus, der aus dem ersten durch Verschiebung in $y$-Richtung hervorgeht und diesen von aussen berührt. | ||
| + | * einen dritten Torus (ebenfalls auf der $x$-$y$-Ebene), | ||
| + | |||
| + | **Bonus** | ||
| + | - Erstelle eine neue Szene aus zwei ineinander verschlungenen Tori: Der erste Torus liegt in beliebiger Lage, der zweite " | ||
| + | - Erstelle eine neue Szene aus mehrenen aufeinanderliegenden Tori, so dass der nächsthöhere Torus jeweils aus dem darunterliegenden durch Streckung um einen fixen Faktor (etwa 0.8) hervorgeht. Hinweis: Du wirst Pythagoras verwenden müssen. | ||
| + | </ | ||
| + | <!-- VON IVO KOPIERT: | ||
| + | ==== Aufgabe 2 ==== | ||
| + | Programmieren Sie drei Tori, die ineinander hängen und sich exakt von innen her berühren. Der mittlere Torus ist natürlich um 90 Grad gedreht. | ||
| + | |||
| + | |||
| + | Tip: Mit folgender Anweisung, innerhalb eines Objekts, können Sie dieses spiegelnd machen: | ||
| + | <code povray> | ||
| + | finish { phong 0.95 reflection {0.95} } | ||
| + | </ | ||
| + | Spiegelnde Objekte leben von ihrer Umgebung. Fügen Sie z.B. einen Himmel hinzu. | ||
| + | |||
| + | ==== union, declare, object ==== | ||
| + | Objekte können zu einem Objekt zusammengefasst werden und dann als Ganzes manipuliert werden. Das ist vor allem dann nützlich, wenn man Objekt verschieben, | ||
| + | |||
| + | <code povray> | ||
| + | // Speichern in die Variable schneemann (wird noch nichts angezeigt) | ||
| + | #declare schneemann = union { | ||
| + | sphere { < | ||
| + | sphere { < | ||
| + | } | ||
| + | |||
| + | // Objekt gebrauchen: | ||
| + | object { schneemann | ||
| + | pigment { color rgb 1 } // Weiss | ||
| + | } | ||
| + | object { schneemann | ||
| + | pigment { color rgb x } // Rot | ||
| + | translate < | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ==== Aufgabe 3 ==== | ||
| + | Folgender Code erzeugt einen halben Torus: | ||
| + | <code povray> | ||
| + | #declare rund = difference { // Halber torus (in x/z-Ebene, Teil mit positiver x-Koordinate | ||
| + | torus {1, 0.2} | ||
| + | plane {x, 0} | ||
| + | } | ||
| + | object{rund | ||
| + | pigment{color rgb x} | ||
| + | } | ||
| + | </ | ||
| + | Bauen Sie daraus ein Kettenglied (mit zwei halben Tori und zwei Zylindern). | ||
| + | Definieren Sie dann eine neue Variable (z.B. kettenglied) und stellen Sie dann wieder eine Kette dar. | ||
| + | |||
| + | Mit Hilfe von [[lehrkraefte: | ||
| + | * eine Kette mit vielen Gliedern | ||
| + | * eine Kette die im Kreis geschlossen ist | ||
| + | * ein Kettenhemd, mit runden gliedern (bzw. zwei-dimensionale Kette) | ||
| + | * Hängende Kette entlang einer Parabel | ||
| + | |||
| + | {{: | ||
| + | --> | ||