// povray 3.6
// Präzession eines Schwungrads
//
// Am Schwungrad lassen sich die Auswirkungen der Präzession aufzeigen. Ein Kippen
// der Rotationsachse vom Schwungrad ruft senkrecht zur Achse stehende Kräfte hervor.
// Zentrales Element bildet ein Schwungrad. Damit die vielen Vektoren erkennbar sind,
// wird das als transparentes Objekt abgebilet. Eine Änderung des Drehimpulses führt
// zu entsprechenden Kräften.
// Globale Definitionen
// Achsen
// x -> links nach rechts
// y -> von unten nach oben
// z -> tiefe
// Kameraposition
#declare Kameraposition = <10, 15, -28>;
#declare Vektor_Teilung = 1;
// * Vektor_Durchmesser
#declare Vektor_Durchmesser = 0.1;
// * Vektor_Schrift
#declare Vektor_Schrift = "Schrift/DejaVuSans.ttf"
#declare Winkel_Vektor_Radius = 2.5;
global_settings {
adc_bailout 0.00392157
assumed_gamma 1.5
noise_generator 2
charset utf8
}
light_source {
Kameraposition
rgb <1.5, 1.5, 1.5>
shadowless
}
camera {
//perspective
orthographic angle 45
location Kameraposition
sky <0, 1, 0>
direction <0, 0, 1>
right x*image_width/image_height
up <0, 1, 0>
look_at <0, 0, 0>
}
/*
camera { // X
perspective
location <45, 0, 0>
sky <0, 1, 0>
direction <0, 0, 1>
right <1, 0, 0>
up <0, 1, 0>
look_at <0, 5, 0>
}
camera { // Z
perspective
location <0, 0, -45>
sky <0, 1, 0>
direction <0, 0, 1>
right <1, 0, 0>
up <0, 1, 0>
look_at <0, 5, 0>
}
*/
#include "../baukasten/baukasten.pov"
#include "colors.inc"
// *******
// *
// * MAIN
// *
// *******
// Koordinaten-Achsen
// Schwungrad
// Drehimpuls
#declare x_offset = -2;
#declare y_offset = -1;
object { // Schwungrad
schwungrad
translate x * x_offset
translate y * y_offset
}
/*
//
// Test #1 - Pfeilung
//
object {
Winkel_Vektor_Komplett(
<0,0,0>, 60, 0, 0, 0, "X", "1", 1, Bronze )
}
object {
Winkel_Vektor_Komplett(
<0,0,0>, 30, 60, 0, 0, "X", "2", 1, Bronze )
}
object {
Winkel_Vektor_Komplett(
<0,0,0>, 90, 0, -90, -30, "X", "3", 1, Bronze )
}
*/
//
// Test #2 - Beschriftung
//
/*
object {
Winkel_Vektor_Komplett(
<0,0,0>, 60, 0, 0, 0, "X", "1", 1, Bronze )
}
object {
Winkel_Vektor_Komplett(
<0,0,0>, 90, 90, 0, 0, "X", "2", 1, Bronze )
}
object {
Winkel_Vektor_Komplett(
<0,0,0>, 90, 0, 90, 0, "X", "3", 1, Bronze )
}
object {
Winkel_Vektor_Komplett(
<0,0,0>, 60, 0, 90, 90, "X", "4", 1, Bronze )
}
*/
//
// Drehimpuls und Rotation
//
#local Verhaeltnis = 0.5;
#local L_0 = <7,0,0>;
#local L_1 = <7,Verhaeltnis*7,0>;
object {
Vektor(<x_offset,y_offset,0>, L_0, "L", "0", ForestGreen)
}
object {
Vektor(<x_offset,y_offset,0>, L_1, "L", "1", ForestGreen)
}
object {
Vektor_Invert(<x_offset+7,y_offset,0>, <0,Verhaeltnis*7,0>, "ΔL", "", ForestGreen)
}
object {
Vektor(<x_offset,y_offset,0>, <5.75,0,0>, "ω", "0", SeaGreen)
scale 1.0001 // Vermeide Glitch
}
object {
Vektor(<x_offset,y_offset,0>, <5.75,Verhaeltnis*5.75,0>, "ω", "1", SeaGreen)
scale 1.0001
}
//
// Winkel Δθ
//
object {
#local lAngle = VAngleD(L_0, L_1);
Winkel_Vektor_Komplett(
<x_offset,y_offset,0>, lAngle, 0, 0, 0, "Δθ", "", 1, Scarlet )
}
//
// Weitere Vektoren
//
// Bronze
object {
Vektor(<x_offset+4,y_offset,0>, <0,0,4>, "F", "", Copper)
}
object {
Vektor(<x_offset-4,y_offset,0>, <0,0,-4>, "-F", "", Copper)
}
object {
Vektor(<x_offset,y_offset,0>, <0,0,-3>, "Ω", "", Maroon)
}
object {
Vektor(<x_offset,y_offset,0>, <0,4,0>, "τ", "", DustyRose)
}
//
// Koordinatenachsen
//
object {
Vektor(<x_offset+7.5,y_offset,0>, <3,0,0>, "y", "", Gray50) // povray x-Achse
}
object {
Vektor(<x_offset,y_offset+6,0>, <0,3,0>, "z", "", Gray50) // povray y-Achse
// Vektor_Index(<0,0,0>, <0,5,0>, "L", "0")
}
object {
Vektor_Invert(<x_offset,y_offset,-6>, <0,0,-3>, "x", "", Gray50) // povray z-Achse
}
//
// Hintergrund
//
// http://www.f-lohmueller.de/pov_tut/backgrnd/p_sky1d.htm
// sky ------------------------------------
sphere{
<0,0,0>,1 hollow
texture{
pigment{
gradient <0,-1,0>
color_map{
[0.0 color White]
[1.0 color rgb<0.1,0.25,0.75>]
[0.8 color rgb<0.1,0.25,0.75>]
}
} // end pigment
finish {ambient 1 diffuse 0}
} // end of texture
scale 40
translate x * x_offset
translate y * y_offset
} // end of sphere -----------------------
/*
sky_sphere{
pigment{
gradient <1,1,0> // Hintergrund
color_map {
[0 color rgb<1,1,1> ]//White
[0.4 color rgb<0.24,0.34,0.56>]//~Navy
[0.6 color rgb<0.24,0.34,0.56>]//~Navy
[1.0 color rgb<1,1,1> ]//White
}
scale 2
}
} // end of sky_sphere
*/
// EOF