Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| lehrkraefte:blc:math:vektoranalysis:povrayaufgaben [2018/08/20 06:35] – [Aufgabe 441] Ivo Blöchliger | lehrkraefte:blc:math:vektoranalysis:povrayaufgaben [2018/08/31 14:05] (current) – [Aufgabe 441] Ivo Blöchliger | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Programm " | ||
| + | ==== Installation ==== | ||
| + | Dieser Vorgang muss nur ausgeführt werden, wenn im Laufwerk C: kein Ordner POV-Ray existiert. | ||
| + | * Im Klassenlaufwerk finden Sie im Ordner Mathe die Datei **pvinst.bat**. Starten Sie diese. Dieser Vorgang muss nur einmal ausgeführt werden. | ||
| + | ==== Programmstart ==== | ||
| + | * Im Laufwerk C:, im Ordner POV-Ray, starten Sie die Datei **pvstart.bat**. | ||
| + | * Legen Sie eine neue POV-Ray Datei an und speichern Sie diese mit der Dateiendung .pov an einem geeigneten Ort. Für Animationen speichern Sie die Datei in einem separaten Ordner nur für diese Datei. | ||
| + | |||
| + | |||
| + | |||
| + | ====== POV-Ray Aufgaben ====== | ||
| + | |||
| + | Grundstruktur: | ||
| + | <code povray> | ||
| + | // Kamera | ||
| + | camera { | ||
| + | sky < | ||
| + | right < | ||
| + | location < | ||
| + | look_at <0, 0, 1> // Blickrichtung (erscheint im Bildmittelpunkt) | ||
| + | angle 30 // Öffnungswinkel der Kamera | ||
| + | } | ||
| + | |||
| + | // Lichtquellen | ||
| + | light_source { | ||
| + | < | ||
| + | color rgb < | ||
| + | } | ||
| + | light_source { | ||
| + | < | ||
| + | color rgb < | ||
| + | } | ||
| + | // Boden (xy-Ebene, kariert mit Quadraten von Seitenlänge 1) | ||
| + | plane { | ||
| + | z,0 // Ebene, senkrecht zu z=< | ||
| + | pigment { // Schachbrett | ||
| + | checker color rgb < | ||
| + | } | ||
| + | finish { reflection 0.4 } | ||
| + | } // Ende Boden | ||
| + | |||
| + | </ | ||
| + | |||
| + | ===== Aufgabe 441 ===== | ||
| + | Erst werden die Parameter der Aufgabe festgelegt, dann eine Person definiert (kann noch beliebig verkompliziert werden) | ||
| + | und schliesslich die beiden Personen dargestellt. | ||
| + | |||
| + | Um die Animation zu rendern, muss in POV-Ray noch die Option " | ||
| + | <code povray> | ||
| + | // TODO | ||
| + | // HIER FEHLT NOCH KAMERA, LICHT UND BODEN | ||
| + | |||
| + | |||
| + | #declare oa=< | ||
| + | #declare va=< | ||
| + | |||
| + | #declare ob=< | ||
| + | #declare vb=< | ||
| + | |||
| + | #declare zeit=clock*6; | ||
| + | |||
| + | #declare person=union { // Person, zentriert auf < | ||
| + | box { < | ||
| + | } // Ende union Person | ||
| + | |||
| + | // Person A | ||
| + | object { person | ||
| + | // TODO | ||
| + | // translate HIER DIE POSITION AUS DER zeit BERECHNEN | ||
| + | pigment { color rgb < | ||
| + | } // Ende Person A | ||
| + | object { person | ||
| + | rotate 90*z // damit die Person in y-Richtung schaut. | ||
| + | // TODO | ||
| + | // translate HIER DIE POSITION AUS DER zeit BERECHNEN | ||
| + | pigment { color rgb < | ||
| + | } // Ende Person A | ||
| + | </ | ||
| + | Wer möchte, kann sich überlegen, wie man noch Beine animieren könnte. Dazu eignet sich die Modulo-Funktion: | ||
| + | <code povray> | ||
| + | #declare beinzeit = mod(zeit, | ||
| + | // TODO | ||
| + | // AUS beinzeit DIE POSITION DER FUESSE BERECHNEN | ||
| + | </ | ||
| + | |||
| + | <hidden Lösungsvorschlag> | ||
| + | <code povray> | ||
| + | // Kamera | ||
| + | camera { | ||
| + | sky < | ||
| + | right < | ||
| + | location < | ||
| + | look_at <5, 5, 1> // Blickrichtung (erscheint im Bildmittelpunkt) | ||
| + | angle 30 // Öffnungswinkel der Kamera | ||
| + | } | ||
| + | |||
| + | // Lichtquellen | ||
| + | light_source { | ||
| + | < | ||
| + | color rgb < | ||
| + | } | ||
| + | light_source { | ||
| + | < | ||
| + | color rgb < | ||
| + | } | ||
| + | // Boden (xy-Ebene, kariert mit Quadraten von Seitenlänge 1) | ||
| + | plane { | ||
| + | z,0 // Ebene, senkrecht zu z=< | ||
| + | pigment { // Schachbrett | ||
| + | checker color rgb < | ||
| + | } | ||
| + | finish { reflection 0.4 } | ||
| + | } // Ende Boden | ||
| + | |||
| + | |||
| + | #declare oa=< | ||
| + | #declare va=< | ||
| + | |||
| + | #declare ob=< | ||
| + | #declare vb=< | ||
| + | |||
| + | #declare zeit=clock*6; | ||
| + | |||
| + | #declare person=union { // Person, zentriert auf < | ||
| + | box { < | ||
| + | } // Ende union Person | ||
| + | |||
| + | |||
| + | #declare halbeSeite=2; | ||
| + | #declare abstand=1; | ||
| + | |||
| + | #declare truppe = union { | ||
| + | // Einrücken mit TAB (oberhalb CapsLock=) | ||
| + | #declare posx=-halbeSeite; | ||
| + | #while (posx< | ||
| + | #declare posy=-halbeSeite; | ||
| + | #while (posy <= halbeSeite) | ||
| + | | ||
| + | object { person | ||
| + | translate abstand*< | ||
| + | } | ||
| + | | ||
| + | #declare posy=posy+1; | ||
| + | #end // while posy | ||
| + | #declare posx=posx+1; | ||
| + | #end // while posx | ||
| + | } // union | ||
| + | |||
| + | |||
| + | |||
| + | // Person A | ||
| + | object { truppe | ||
| + | // TODO | ||
| + | translate oa+zeit*va | ||
| + | pigment { color rgb < | ||
| + | } // Ende Person A | ||
| + | |||
| + | |||
| + | // Person B | ||
| + | object { truppe | ||
| + | rotate 90*z // damit die Person in y-Richtung schaut. | ||
| + | // TODO | ||
| + | translate ob+zeit*vb | ||
| + | pigment { color rgb < | ||
| + | } // Ende Person A | ||
| + | |||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ===== Video-Encoding mit ffmpeg ===== | ||
| + | < | ||
| + | C: | ||
| + | </ | ||