Descriptions and Examples for the POV-Ray Raytracer by Friedrich A. Lohmüller
    Model Railroading / Railway Modelling with POV-Ray -
Italiano Italiano
Français français
Deutsch Deutsch

Home
- POV-Ray Tutorial

  Model Railroading
  Railway Modelling
  with POV-Ray
    Index of Content

  - Rail Track System
    for POV-Ray
    Basic Track Elements
    - Straight & Curved
    - Switches
    - Wye + 3Ways
    - Level Junctions

    - Simplified Using by
      RT_System_00.inc
      - Rail Tracks Elements
        with RT_System_00.inc

    - Track Layout with
      Model Scaled Tracks
      - H0 Scale Tracks
      - N Scale Tracks
      - Z Scale Tracks

    - Track Layout with
      scaled Tracks
      - Track Placement
      - Tracks Up & Down

    - Track Layout Examples
      - Simple cyclic
     > Simple eight

    - Download of the
      Rail Track System


                                                     
Examples for Track Layouts with scaled Tracks
Example 2 : A Simple Eight
(N scale track system of geometry type A)

For the arrangment of tracks in curves upward or downward we should use short tracks of an angle of 15° and the macro 'Track_Up_00( ... )' from my include file 'RT_System/N_TypeA111/RT_N_TypeA111_Track_Up_00.inc'.
For curved tracks we often need to turn tracks by an angle around the center of the curve by using the macro 'Rotate_Around_Trans( RotationVector, Center_of_Rotation )' from the include file 'transforms.inc'.
We can replace the long command
'Rotate_Around_Trans(<0, 1*15,0>,<0,0,-R1>)' by a shorter expression like
'RTyz( 1*15, -R1 )' by declaring the following macro:
//----------------------------------------------------//
#include "transforms.inc"
#macro RTyz( Y_Angle, Z_Distance )
 Rotate_Around_Trans(<0, Y_Angle,0>,<0,0, Z_Distance>)
#end
//----------------------------------------------------//
Simple cyclic
A simple eight of tracks up and down
Download: Scene file for POV-Ray
Arrangment of the tracks:
//-----------------------------------------------------------------------------------------//
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
//-----------------------------------------------//
And here the same eight with provisorial bridge piers:
Simple cyclic
Simple cyclic eight.
Download: Scene file for POV-Ray
Simple cyclic
Simple cyclic eight
Expansion with 3-Way-Switch and sidetrack:
Necessary changes in red!
//-----------------------------------------------------------------------------------------//
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
Simple eight + sidetrack.
Download: Scene file for POV-Ray
 


top

© Friedrich A. Lohmueller, 2012
www.f-lohmueller.de