/* voronoiA.pov 2009 Sam Benge */ camera{ orthographic right x*2 up y*2 location -z*100 look_at z } // #macro VDot(V1,V2) V1.x*V2.x + V1.y*V2.y + V1.z*V2.z #end // #macro VLength(A) sqrt(VDot(A,A)) #end // including files is slow :) #macro VDist(V1, V2) vlength(V1 - V2) #end #default{finish{ambient 1}} #declare R = seed(1010); #declare dv=40; #declare nPoints=20; #declare pts=array[nPoints]; #declare V=0; #while(V; #declare V=V+1; #end #declare colors=array[nPoints]; #declare V=0; #while(V; #declare V=V+1; #end #declare pyramid= prism{conic_sweep -1,0,5,<-1,-1>,<-1,1>,<1,1>,<1,-1>,<-1,-1> scale .51 rotate -x*90} #declare Y=-1; #while(Y<=1) #declare X=-1; #while(X<=1) object{ pyramid scale 1/dv translate pigment{ #declare V=0; #declare RGB=colors[0]; #declare dist=VDist(,pts[V]); #while(V,pts[V]),pts[V]); #declare RGB=colors[V]; #end #declare V=V+1; #end rgb RGB } } #declare X=X+1/dv; #end #declare Y=Y+1/dv; #end union{ #declare V=0; #while(V