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

Home
- POV-Ray Tutorial

  - Esempi per POV-Ray
   Indice generale
  - Geometria
    - Pedone
    - Cubo wireframe
    - Ottagono
    - Forma ovoidale
    - Stella
    - Lente ottica
    - Scacchiera
    - Forma Pallone

    - Forma Erlenmeyer
    - Due Cilindri Fondati
    - Tetraedro Regolare
    - Triangolo di Penrose
    - Yin & Yang
    - Partizione Pisciforme
    - Rosetta Trilobato
    - Partizione Trilobata
  - Architettura
  - Tecnica
                                       
 
star

Stella

La costruzione di una forma semplice di una stella.
Esempio per l'uso di "intersection" e / o "difference".
Oggetti:   "box", "sphere".
Metodi:  "#declare", "union{...}", "intersection", "difference".
Cliccare qui per un esempio!

La costruzione passo a passo:

Cominciamo con un "box". Per ottenere una lungezza dei raggi definita bene cambiamo la scala di "box" alla radice quadrata di 2. (Cosi i diagonali di suo superficie hanno una lungezza di 2 unità!)


  box { <-1,-1,-1>,< 1,1,1>
        scale <1,1,1>*sqrt(2)
      }

Poi ruotamo il "box" intorno all'asse z con 45 gradi.

  box { <-1,-1,-1>,< 1,1,1>
        scale <1,1,1>*sqrt(2)
        rotate<0,0,45>
      }

Adesso chambiamo la scala di "box" in direzione y e dopo questo ruotamo il "box" intorno all'asse x con 45 gradi. Usiamo il commando "#declare" per la conversione di questa forma in un oggetto nuovo chiamato "Ray_Profile".

  #declare Ray_Profile =
   box { <-1,-1,-1>,< 1,1,1>
        scale <1,1,1>*sqrt(2)
        rotate<0,0,45>
        scale <1,0.36,1>
        rotate<45,0,0>
      }

Adesso riflettiamo questo oggetto nuovo al piano xy in direzione z con "scale<1,1,-1>". Poi facciamo una "intersection" dell'oggetto originale e l'oggetto riflettato..

 intersection{
   object{ Ray_Profile }
   object{ Ray_Profile scale<1,1,-1>}
   }

Per essere in grado di produrre anche stelle con un numero di raggi dispari, dobbiamo sottrarre ( = intersection con la forma inverse) un "box" per disfarsi della parte sinistra di questa forma. Con questa forma facciamo un oggetto nuovo chiamato "'Ray"..

#declare Ray =
 intersection{
   object{ Ray_Profile }
   object{ Ray_Profile scale<1,1,-1>}
   box{<-2,-1,-1>,<0,1,1> inverse}
   }

Infine i raggi della stella sono arrangiato con un ciclo while intorno al'asse y. Per l'immagine a destra i raggi sono fatto più sottile con " scale<1,0,5,0.5> ".
La stella risultando é un oggetto con un raggio di 2 unità.

union{
 #local Nr = 0;     // start
 #local EndNr = 5;  // end
 #while (Nr < EndNr)
 object{Ray rotate<0,Nr*360/EndNr,0>}
 #local Nr = Nr + 1;// next Nr
 #end // ------------- end of loop
rotate<0,0,0>
translate<0,0,0>
} // end of union

 
another star 320x240
La descrizione della scena per POV-Ray:
"star0.txt" o "star0.pov"
 
top
© Friedrich A. Lohmüller, 2009
www.f-lohmueller.de