/*=========================================================
Terza lezione di Pov Ray 21 Maggio 2010
Elisa Conversano
=========================================================*/

#include "colors.inc"
#include "textures.inc"

camera {
location <2,6,-4>
right x*image_width/image_height
look_at <0,0.0,0>
angle 40
}

light_source { <1,4,-2> color 1 }

light_source { <-1,2,-6> color 0.5 shadowless}
light_source { < 1,2,-6> color 0.5 shadowless}

// definisco la funzione Superficie
//argomenti della macro sono U e V
#macro Superficie(U,V)
#local X = U*2-1;
#local R = 0.5+0.5*X*X; //raggio
#local Theta = pi*V; //angolo
#local Z = cos(Theta)*R;
#local Y = sin(Theta)*R;
<X, Y, Z>
#end

//
// La disegno con un doppio ciclo di sferette
//
#declare N = 60;
#declare M = 30;
#declare I = 0;
#while(I<N)
#declare J = 0;
#while(J<M)

#declare U = I/(N-1);
#declare V = J/(M-1);

#declare P = Superficie(U,V);

sphere {P,0.03 pigment {White}}
// cone {P,0.03,P+(0.07*y),0 pigment {Gold}} //disegno dei coni verticali su ogni sferetta

#declare J = J + 1;
#end
#declare I = I + 1;
#end

//definisco gli assi con una macro
#macro Assi (Dir, Col)
cone {Dir,0.05,1.2*Dir,0 pigment{Col}}
cylinder {0,Dir, 0.03 pigment {Col}}
#end

//disegno gli assi
Assi (x,Red)
Assi (y,Green)
Assi (z,Blue)