lehrkraefte:blc:math:vektoranalysis:povrayaufgaben

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
lehrkraefte:blc:math:vektoranalysis:povrayaufgaben [2018/08/20 08:31]
Ivo Blöchliger created
lehrkraefte:blc:math:vektoranalysis:povrayaufgaben [2018/08/31 16:05] (current)
Ivo Blöchliger [Aufgabe 441]
Line 1: Line 1:
 +====== Programm "Installation" und Start ======
 +==== 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 ====== ====== POV-Ray Aufgaben ======
  
Line 38: Line 48:
 Um die Animation zu rendern, muss in POV-Ray noch die Option "+KFF20" eingetragen werden, damit z.B. 20 Bilder erzeugt werden. Um die Animation zu rendern, muss in POV-Ray noch die Option "+KFF20" eingetragen werden, damit z.B. 20 Bilder erzeugt werden.
 <code povray> <code povray>
 +// TODO
 +// HIER FEHLT NOCH KAMERA, LICHT UND BODEN
 +
 +
 #declare oa=<0,4,0>;   // Startposition A #declare oa=<0,4,0>;   // Startposition A
 #declare va=<1,0,0>;   // Geschwindigkeitsvektor A #declare va=<1,0,0>;   // Geschwindigkeitsvektor A
  
 #declare ob=<3,0,0>;   // Startposition B #declare ob=<3,0,0>;   // Startposition B
-#declare va=<0,1,0>;   // Geschwindigkeitsvektor B+#declare vb=<0,1,0>;   // Geschwindigkeitsvektor B
  
 #declare zeit=clock*6; // Total 6 Sekunden simulieren #declare zeit=clock*6; // Total 6 Sekunden simulieren
Line 63: Line 77:
 }  // Ende Person A }  // Ende Person A
 </code> </code>
-Wer möchte, kann sich überlegen, wie man noch Beine animieren könnte.+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,1.0);   // Liefert die Nachkommastellen 
 +// TODO 
 +// AUS beinzeit DIE POSITION DER FUESSE BERECHNEN 
 +</code> 
 + 
 +<hidden Lösungsvorschlag> 
 +<code povray> 
 +// Kamera 
 +camera {  
 +      sky <0,0,1>          // Vektor, der festlegt, wo oben ist. 
 +      right <-4/3,0,0>     // Bildverhältnis 4:3, plus Spiegelung für rechtsdrehendes System 
 +      location <20,8,18>   // Position der Kamera 
 +      look_at <5, 5, 1>    // Blickrichtung (erscheint im Bildmittelpunkt) 
 +      angle 30             // Öffnungswinkel der Kamera 
 +
 +  
 +// Lichtquellen 
 +light_source {  
 + <12,-2,12>              // Position des Lichts 
 + color rgb <1,1,1>     // Farbe des Lichts, als rot-grün-blau Vektor (Komponenten 0 bis 1) 
 +
 +light_source {  
 + <13,10,13>              // Position des Lichts 
 + color rgb <1,1,1>     // Farbe des Lichts, als rot-grün-blau Vektor (Komponenten 0 bis 1) 
 +
 +// Boden (xy-Ebene, kariert mit Quadraten von Seitenlänge 1) 
 +plane {  
 +  z,0        // Ebene, senkrecht zu z=<0,0,1>, mit Abstand 0 zum Ursprung 
 +  pigment {  // Schachbrett 
 +    checker color rgb <1,1,1>, color rgb <0.2,0.2,0.2> 
 +  } 
 +  finish { reflection 0.4 } 
 +} // Ende Boden 
 + 
 + 
 +#declare oa=<0,4,0>;   // Startposition A 
 +#declare va=<1,0,0>;   // Geschwindigkeitsvektor A 
 +  
 +#declare ob=<3,0,0>;   // Startposition B 
 +#declare vb=<0,1,0>;   // Geschwindigkeitsvektor B 
 +  
 +#declare zeit=clock*6; // Total 6 Sekunden simulieren 
 +  
 +#declare person=union {  // Person, zentriert auf <0,0,0>, Blickrichtung in x-Richtung 
 +  box { <-0.15,-0.3,0>, <0.15,0.3,1.7>
 +} // Ende union Person 
 + 
 + 
 +#declare halbeSeite=2;  // ACHTUNG Gross/Kleinschreibung! 
 +#declare abstand=1; 
 + 
 +#declare truppe = union { 
 +    // Einrücken mit TAB  (oberhalb CapsLock=) 
 +    #declare posx=-halbeSeite;  // x-Position einer Person in der Truppe 
 +    #while (posx<=halbeSeite)   // Wieder holen, von -halbeSeite bis +halbeSeite 
 +        #declare posy=-halbeSeite;     // Dito für posy 
 +        #while (posy <= halbeSeite) 
 +             
 +            object { person            // Person platzieren 
 +                translate abstand*<posx,posy,0> 
 +            } 
 +                     
 +            #declare posy=posy+1; 
 +        #end // while posy 
 +        #declare posx=posx+1; 
 +    #end // while posx 
 +} // union 
 + 
 + 
 +  
 +// Person A 
 +object { truppe 
 +  // TODO 
 +  translate oa+zeit*va    // Parameterdarstellung der Geraden a 
 +  pigment { color rgb <1,0,0>
 +}  // Ende Person A 
 +            
 +            
 +// Person B 
 +object { truppe 
 +  rotate 90*z  // damit die Person in y-Richtung schaut. 
 +  // TODO 
 +  translate ob+zeit*vb  // Parameterdarstellung der Geraden b 
 +  pigment { color rgb <0,1,0>
 +}  // Ende Person A 
 + 
 +</code> 
 +</hidden> 
 + 
 +===== Video-Encoding mit ffmpeg ===== 
 +<code> 
 +C:\ffmpeg-20180831-3ad0e67-win64-static\bin\ffmpeg.exe -i .\aufgabe441og%02d.png movie.mp4 
 +</code> 
  • lehrkraefte/blc/math/vektoranalysis/povrayaufgaben.1534746683.txt.gz
  • Last modified: 2018/08/20 08:31
  • by Ivo Blöchliger