Descrizioni ed esempi per il raytracer POV-Ray di Friedrich A. Lohmüller
English English English
Français français
Deutsch Deutsch

Home
- POV-Ray Tutorial

  Sistemi di coordinate
  e funzioni in 2D

  - Carta quadrettata
  - Sistemi di coordinate
      con gli assi
  > Macro per un reticolo
      con due livelli
  - Funzioni 2D
      Esempio
  - Funzioni matematiche
      in POV-Ray
                                           
Un Reticolo con due Livelli
La Costruzione di una carta reticolata due volte con due livelli (per es. 1m e 0.1m)
con la superposizione di due reticole a differenti scale.

Oggetti:    "plane, cylinder, cone".
Metodi: "color_map, layered textures, macro"

La Costruzione in dettaglio:
Usiamo una prima macro per creare righe in distanze prestabilite in una direzione.
In una seconda macro aggiungiamo queste righe due volte con la prima scala (per es. 1 unità) una di queste girate di 90° intorno al asse y. Poi aggiungiamo il secondo reticolo (per es. con 0,1 unità) nel stesso modo.


//------------------------------------- ////////////
#macro Raster_Lines (RScale, LineW, Intensity_)
 pigment{ gradient x scale RScale
          color_map{
           [0.000   color rgbt<1,1,1,0>*Intensity_]
           [0+LineW color rgbt<1,1,1,0>*Intensity_]
           [0+LineW color rgbt<1,1,1,1>]
           [1-LineW color rgbt<1,1,1,1>]
           [1-LineW color rgbt<1,1,1,0>*Intensity_]
           [1.000   color rgbt<1,1,1,0>*Intensity_]
           } // end color_map
         } // end pigment
 #end// of Raster(RScale, HLine)-macro
//------------------------------------- ////////////
//------------------------------------- ////////////
#macro Raster_Plate(
    RD1, Width1,//primary raster distance/width,
    RD2, Width2,//secondary raster distance/width,
    Base_Texture, //  non = pigment { Clear }
    Intensity, // Line gray intensity
    Start_Box, End_Box, // vectors
  ) //------------------------------------------
//----------------------------------------------
box{ Start_Box,End_Box
     texture{ Base_Texture }
  #if (RD1 > 0 ) // raster big  RD1, Width1,
    texture { Raster_Lines(RD1,Width1,Intensity) }
    texture { Raster_Lines(RD1,Width1,Intensity)
              rotate<0,90,0>}
  #end
  #if (RD2 > 0 ) // raster small RD2, Width2,
    texture { Raster_Lines(RD2,Width2,Intensity) }
    texture { Raster_Lines(RD2,Width2,Intensity)
              rotate<0,90,0>}
  #end
} // end box -----------------------------------
#end // ------------------------------ end of macro
//------------------------------------- ////////////

// How to use:  ------------------------------------
#declare B_Tex =
  texture{ pigment{ color rgb<1,1,1<*1.2}}
//--------------------------------------------------
object{ Raster_Plate(
    1.0, 0.010,// RD1, Width1,// 1st distance/width,
    0.1, 0.045,// RD2, Width2,// 2nd distance/width,
    B_Tex, // Base_Texture, // non = pigment{Clear}
    0.6, // Intensity, // Line gray intensity
    <-2,-0.05,-2>, <2,0,2>, //Start/End
  ) //----------------------------------------------
  rotate<0,0,0>
  translate<0,0.001,0>
} //------------------------------------------------

Grid with 2 Levels
Reticolo con due liveli.
Questa scena per POV-Ray:
raster_plate_2.pov
Grid with 2 Levels
Reticolo con due liveli con un piano di base.




Grids with 2 Levels
Reticolo 3D con due liveli.
Questa scena per POV-Ray:
raster_plate_4.pov

top

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