Simulation eines rotatierenden Propellers
Simulierte Bewegungsunschärfe (motion blur)
|
Teil II
|
Schritt 1: Wie man einen Popeller mit einer variblen Anzahl an Propellerblättern und einem variablem Drehwinkel baut.
Um diese Konstruktion so flexibel wie möglich zu halten, wurde der Winkel der
Propellerdrehung am Anfang des folgenden Szenentextabschnittes mit einem Platzhalter namens "Rotation_Angle" deklariert.
Für Animationem kann dies z.B. wie folgt geändert werden:
"#declare Rotation_Angle = 360*clock;", wenn etwa die clock-Variable Werte von 0 bis 1 durchläuft.
Ebenso wurde die Anzahl und der Radius der Propellerblätter mit den Platzhalter namens "Number_of_Blades" und "Blade_Radius"
im voraus festgelegt.
 Die Propellerblätter |
#declare Rotation_Angle = 20; // Der Drehwinkel
// -------------------------// Dimensionen der Propellerblätter
#declare Number_of_Blades = 5;
#declare Blade_Radius = 3.00;// Länge der Propellerblätter
// -------------------------------- Textur der Propellerblätter
#declare Blades_Texture =
texture { Chrome_Metal finish{ambient 0.1 diffuse 0.8 phong 1}}
// -----------------------------------------------------------------
union{ // Propeller -----------------------------------------------
cylinder { <0,0,-0.01>,<0,0,1.00>,0.10 } // Propeller-Achse
difference{ // Propeller-Nase
sphere{<0,0,0>, 1}
box {<-1,-1,-0.1>,<1,1,1>}
scale <1,1,2.5>*0.3
translate<0,0,0.2>
}
union{ // blades
#declare Nr = 0;
#declare End = Number_of_Blades;
#while ( Nr < End)
sphere { < 0, 0, 0>,0.5
translate <0.5,0,0>
scale <1,0.15,0.04> rotate <10,0,0>
scale Blade_Radius
texture {Blades_Texture}
rotate< 0,0, 360/End * Nr >
}
#declare Nr = Nr + 1;
#end
} // end of union of the blades
texture{Blades_Texture}
translate <0,0,-0.5>
rotate <0,0,Rotation_Angle>
} // end of union propeller ---------------------------------------
|