Beschreibungen und Beispiele zum Raytracer POV-Ray von Friedrich A. Lohmüller
Modelleisenbahn u. Eisenbahn-Modelle mit POV-Ray
English English English
Italiano Italiano
Français français

Home
- POV-Ray Tutorial

- Modelleisenbahn u.
  Eisenbahn-Modelle
  mit POV-Ray
    Inhaltsverzeichnis

  - Mein Rail Track System
    für POV-Ray
    Gleis Elemente
    - Geraden & Kurven
    - Weichen
    - Y- u. 3Wege-Weichen
    - Kreuzungen

    - Vereinfachte Anwendung
      mit RT_System_00.inc
      - Gleis Elemente
        mit RT_System_00.inc

    - An Modell-Maßstäbe
      angepaßte Gleiselemente
      - H0 Scale Gleise
      - N Scale Gleise
      - Z Scale Gleise

    - Gleisplan-Design mit
      skalierten Gleisen
      - Verlegen von Gleisen
      - Gleise rauf u. runter

    - Gleisplan-Design Beispiele
      - Einfach zyklisch
     > Einfacher Achter

    - Download
      Rail Track System
                                                         
Gleisplan-Design Beispiele
Beispiel 2 : Einfacher Achter
(Spur N Gleissystem, Geometrie Typ A)

Für gebogene Gleise benötigt man oft eine Drehung des Gleises um einem Winkel um ein Rotationszentrum unter Verwendung des Makros 'Rotate_Around_Trans( RotationVector, Center_of_Rotation )' aus der Include-Datei 'transforms.inc'.
Man kann den langen Befehl
'Rotate_Around_Trans(<0, 1*15,0>,<0,0,-R1>)'
durch den kürzeren Ausdruck ersetzen,
wie etwa 'RTyz( 1*15, -R1 )'
indem man das folgende Makro deklariert:
//------------------------------------------------//
#include "transforms.inc"
#macro RTyz( Y_Angle, Z_Distance )
 Rotate_Around_Trans(<0,Y_Angle,0>,<0,0,Z_Distance>)
#end
//------------------------------------------------//
Simple cyclic
Ein einfacher Achter mit Gleise auf und ab
Download: Szenen-Datei für POV-Ray
Verlegen der Gleise:
//-----------------------------------------------------------------------------------------//
union{ //  western curve
 object{ Track_Up_00 ("T_R1_15", Step_1/2,1) RTyz( 0*15,-R1) translate<0, 0.0*Step_1*N,0> }
 object{ Track_Up_00 ("T_R1_15", Step_1,  0) RTyz( 1*15,-R1) translate<0, 0.5*Step_1*N,0> }
 object{ Track_Up_00 ("T_R1_15", Step_1,  0) RTyz( 2*15,-R1) translate<0, 1.5*Step_1*N,0> }
 object{ Track_Up_00 ("T_R1_15", Step_1,  0) RTyz( 3*15,-R1) translate<0, 2.5*Step_1*N,0> }
 object{ Track_Up_00 ("T_R1_15", Step_1,  0) RTyz( 4*15,-R1) translate<0, 3.5*Step_1*N,0> }
 object{ Track_Up_00 ("T_R1_15", Step_1,  0) RTyz( 5*15,-R1) translate<0, 4.5*Step_1*N,0> }
 object{ Track_Up_00 ("T_R1_15", Step_1,  0) RTyz( 6*15,-R1) translate<0, 5.5*Step_1*N,0> }
 object{ Track_Up_00 ("T_R1_15", Step_1,  0) RTyz( 7*15,-R1) translate<0, 6.5*Step_1*N,0> }
 object{ Track_Up_00 ("T_R1_15", Step_1,  0) RTyz( 8*15,-R1) translate<0, 7.5*Step_1*N,0> }
 object{ Track_Up_00 ("T_R1_15", Step_1,  0) RTyz( 9*15,-R1) translate<0, 8.5*Step_1*N,0> }
 object{ Track_Up_00 ("T_R1_15", Step_1,  0) RTyz(10*15,-R1) translate<0, 9.5*Step_1*N,0> }
 object{ Track_Up_00 ("T_R1_15", Step_1,  0) RTyz(11*15,-R1) translate<0,10.5*Step_1*N,0> }
 object{ Track_Up_00 ("T_R1_15", Step_1,  0) RTyz(12*15,-R1) translate<0,11.5*Step_1*N,0> }
 object{ Track_Up_00 ("T_R1_15", Step_1,  0) RTyz(13*15,-R1) translate<0,12.5*Step_1*N,0> }
 object{ Track_Up_00 ("T_R1_15", Step_1,  0) RTyz(14*15,-R1) translate<0,13.5*Step_1*N,0> }
 object{ Track_Up_00 ("T_R1_15", Step_1,  0) RTyz(15*15,-R1) translate<0,14.5*Step_1*N,0> }
 object{ Track_Up_00 ("T_R1_15", Step_1,  0) RTyz(16*15,-R1) translate<0,15.5*Step_1*N,0> }
 rotate<0,180,0>
 RTyz(-2*15, R1 )
 } // end  western curve

union{ // simple  station // starting at western end:
 object{ SW_L( SD_1)  translate< 0*L111 ,0,0>}
 object{ T_R9_15  Rotate_Around_Trans(<0,-1*15,0>,<0,0, R9>)
                      translate< 0*L111 ,0,0>}
 object{ T_111        translate< 1*L111 ,0,0>}

 object{ T_111        translate<2*L111 ,0, 1*Track_Distance> }
 object{ T_111        translate<2*L111 ,0, 0> }

 object{ SW_R( SD_2)  translate<3*L111 ,0, 1*Track_Distance>}
 object{ T_111        translate<3*L111 ,0, 0> }

 object{ T_111        translate<4*L111 ,0, 1*Track_Distance> }
 object{ SW_R( SD_2)  rotate<0,180,0>
                      translate<5*L111 ,0, 0> }
 RTyz(-2*15, R1 )
} // ----- end station

union{ // eastern curve
 object{ Track_Up_00 ("T_R1_15", Step_2/2,1) RTyz( 0*15,-R1) translate<0, 0.0*Step_2*N,0> }
 object{ Track_Up_00 ("T_R1_15", Step_2,  0) RTyz( 1*15,-R1) translate<0, 0.5*Step_2*N,0> }
 object{ Track_Up_00 ("T_R1_15", Step_2,  0) RTyz( 2*15,-R1) translate<0, 1.5*Step_2*N,0> }
 object{ Track_Up_00 ("T_R1_15", Step_2,  0) RTyz( 3*15,-R1) translate<0, 2.5*Step_2*N,0> }
 object{ Track_Up_00 ("T_R1_15", Step_2,  0) RTyz( 4*15,-R1) translate<0, 3.5*Step_2*N,0> }
 object{ Track_Up_00 ("T_R1_15", Step_2,  0) RTyz( 5*15,-R1) translate<0, 4.5*Step_2*N,0> }
 object{ Track_Up_00 ("T_R1_15", Step_2,  0) RTyz( 6*15,-R1) translate<0, 5.5*Step_2*N,0> }
 object{ Track_Up_00 ("T_R1_15", Step_2,  0) RTyz( 7*15,-R1) translate<0, 6.5*Step_2*N,0> }
 object{ Track_Up_00 ("T_R1_15", Step_2,  0) RTyz( 8*15,-R1) translate<0, 7.5*Step_2*N,0> }
 object{ Track_Up_00 ("T_R1_15", Step_2,  0) RTyz( 9*15,-R1) translate<0, 8.5*Step_2*N,0> }
 object{ Track_Up_00 ("T_R1_15", Step_2,  0) RTyz(10*15,-R1) translate<0, 9.5*Step_2*N,0> }
 object{ Track_Up_00 ("T_R1_15", Step_2,  0) RTyz(11*15,-R1) translate<0,10.5*Step_2*N,0> }
 object{ Track_Up_00 ("T_R1_15", Step_2,  0) RTyz(12*15,-R1) translate<0,11.5*Step_2*N,0> }
 object{ Track_Up_00 ("T_R1_15", Step_2,  0) RTyz(13*15,-R1) translate<0,12.5*Step_2*N,0> }
 object{ Track_Up_00 ("T_R1_15", Step_2,  0) RTyz(14*15,-R1) translate<0,13.5*Step_2*N,0> }
 object{ Track_Up_00 ("T_R1_15", Step_2,  0) RTyz(15*15,-R1) translate<0,14.5*Step_2*N,0> }
 object{ Track_Up_00 ("T_R1_15", Step_2,  0) RTyz(16*15,-R1) translate<0,15.5*Step_2*N,0> }
 translate<4.5*L111,0,0>
 RTyz(-2*15, R1 )
} // end  eastern curve

union{ // cross line southeast to northwest
 object{ Track_Up_00 ("T_111", Step_1  , 0)  translate< 0*L111, 0.0*Step_2*N,0> }
 object{ Track_Up_00 ("T_111", Step_1/2, 2)  translate< 1*L111, 1.0*Step_2*N,0> }
 object{ T_Straight( 0.062*N )               translate< 2*L111 ,1.5*Step_2*N,0> }

 object{ Track_Up_00 ("T_111",-Step_1/2, 1)  translate< 2*L111+0.062*N ,1.5*Step_2*N,0> }
 object{ Track_Up_00 ("T_111",-Step_1  , 0)  translate< 3*L111+0.062*N, 1.0*Step_2*N,0> }

 rotate<0,180+1.0,0>
 translate<0, 16.5*Step_1*N,0>
 RTyz( 15*15, R1 )
} // end  cross line southeast to northwest
//-----------------------------------------------//
Und hier derselbe Achter mit provisorische Brückenpfeilern:
Simple cyclic
Einfacher Achter.
Download: Szenen-Datei für POV-Ray
Simple cyclic
Einfacher Achter
Erweiterung mit Dreifach-Weiche und Nebengleis:
Benötigte Änderungen in rot!
//-----------------------------------------------------------------------------------------//
union{ // simple  station
 // starting at western end:
 object{ SW3( SD_1)  rotate<0,0,0>                            translate< 0*L111 ,0,0> }
 object{ T_R9_15  Rotate_Around_Trans(<0,-1*15,0>,<0,0, R9>)  translate< 0*L111 ,0,0>}
 object{ T_111        rotate<0,0,0>                           translate< 1*L111 ,0,0> }
// side line
 union{ object{ T_111  translate< 0*L111 ,0,0>  }
        object{ T_111  translate< 1*L111 ,0,0>  }
        object{ T_111  translate< 2*L111 ,0,0>  }
        object{ T_111  translate< 3*L111 ,0,0>  }
                  Rotate_Around_Trans(<0, 1*15,0>,<0,0,-R9>) translate< 0*L111 ,0,0>
      }
 // end side line
 object{ T_055       rotate<0,0,0>   translate< 2*L111 ,0, 1*Track_Distance> }
 object{ T_055       rotate<0,0,0>   translate< 2*L111 ,0, 0> }

 object{ SW_R( SD_2)  rotate<0,0,0>   translate< 2*L111+1*L055 ,0, 1*Track_Distance> }
 object{ T_111        rotate<0,0,0>   translate< 2*L111+1*L055 ,0, 0> }

 object{ T_111        rotate<0,0,0>   translate< 3*L111+1*L055 ,0, 1*Track_Distance> }
 object{ SW_R( SD_2)  rotate<0,180,0> translate< 4*L111+1*L055 ,0, 0> }

 RTyz(-2*15, R1 )
} //
//-----------------------------------------------//
 
Simple cyclic
Einfacher Achter + Nebengleis.
Download: Szenen-Datei für POV-Ray
 


top

© Friedrich A. Lohmüller, 2012
www.f-lohmueller.de