// Transformation eines Torus // A. Filler // --------------------------------------------------------------- #version 3.5; // benötigte POV-Ray-Version background { color rgb <1, 1, 1> } // Hintergrundfarbe (weiß) torus { 1, 0.2 texture {finish {ambient 0.25 diffuse 0.8 phong 0.6} pigment { color rgb <0.5, 0.5, 0.5> } } scale 1.5 rotate <60,30,0> translate <-0.5,0.5,0.5> } // Wird die obere Zeile (scale ...) auskommentiert, so befindet sich der Torus in Ursprungslage (Abb. 10a). // Ist die Zeile wirksam, so wird der transformierte Torus dargestellt. // Definition der Kamera und der Lichtquellen #declare intervall = 2 ; // Diese Variable legt den Bildausschnitt der gesamten Szene fest. #declare winkel = - 60 ; // Winkel der Kamera zur x-Achse (in Grad) // Auf die beiden Parameter "intervall" und "winkel" koennte verzichtet werden, dafuer muessten unten die entsprechenden // Werte 10 und -60 dann jeweils direkt eingesetzt werden. Allerdings kann man durch die zentrale Definiton dieser Werte // leicht den Bildausschnitt und den Blickwinkel veraendern. camera { orthographic location <60*intervall*cos(winkel*pi/180), 20*intervall, 60*intervall*sin(winkel*pi/180)> right x*4/3*2.3*intervall up y*2.3*intervall look_at <0.0, 0.0, 0.0> } light_source { <2.5*intervall, 2*intervall, -5*intervall> color rgb <1, 1, 1> } light_source { <0,10*intervall,2*intervall> color rgb <1, 1, 1> } // Einfügen eines Koordinatensystems mit Achsen von -intervall bis intervall // --------------------------------------------------------------------------- // Makro für die Darstellung eines Koordinatensystems mit Achsenbezeichnungen // --------------------------------------------------------------------------- #macro koordinatensystem ( achsenlaenge ) #declare kstextur = texture { pigment { rgbf<0.1,0.1,0.2,0.5> } finish { ambient 0.0 diffuse 0.1 reflection 0.05 brilliance 1 specular 0.3 roughness 0.2 } } ; #declare KSFont="cyrvetic.ttf" ; #declare KSSchriftgroesse=achsenlaenge/5 ; union{ // x-Achse: cylinder{-x*1.15*achsenlaenge , x*achsenlaenge, achsenlaenge/120} cone{ x*1.15*achsenlaenge, 0 , x*achsenlaenge, achsenlaenge/48} // y-Achse: cylinder{-y*1.15*achsenlaenge , y*achsenlaenge, achsenlaenge/120} cone{ y*1.15*achsenlaenge, 0 , y*achsenlaenge, achsenlaenge/48} // z-Achse: cylinder{-z*1.15*achsenlaenge , z*achsenlaenge, achsenlaenge/120} cone{ z*1.15*achsenlaenge, 0 , z*achsenlaenge, achsenlaenge/48} // Achsenbezeichnungen: text{ttf KSFont "x",0.1,0 scale KSSchriftgroesse translate <1.08*achsenlaenge,-achsenlaenge/7,0>} text{ttf KSFont "y",0.1,0 scale KSSchriftgroesse translate <-achsenlaenge/8,1.04*achsenlaenge,0>} text{ttf KSFont "z",0.1,0 scale KSSchriftgroesse translate } texture {kstextur} no_shadow } #end koordinatensystem (intervall)