/*========================================================= Calotte sferiche Metodi e Modelli Matematici Gian Marco Todesco, gennaio 2008 http://archinet.uniroma3.it/mate/metodi/2007 =========================================================*/ #include "colors.inc" #include "textures.inc" #version 3.5; global_settings { assumed_gamma 1 } camera { location <2,3,-3> right image_width/image_height*x look_at <-0.25,-1.5,0> angle 66 } light_source {<2,30,-70>, color 1} light_source {<-3,30,-10>, color 1} plane {y,0 pigment {White transmit 0.5}} // parametri prima sfera #declare C0 = <-0.8,-1,-0.6>; #declare R0 = 1.2; // parametri seconda sfera #declare C1 = <0.5,-1,0.3>; #declare R1 = 1.6; // questa funzione definisce la superficie: (x,f(x,z),z) #macro Funzione(X,Z) #local Y = 0; #local Dsc = R0*R0-pow(X-C0.x,2)-pow(Z-C0.z,2); #if(Dsc>=0) #local Y = max(0,sqrt(Dsc)+C0.y); #end #local Dsc = R1*R1-pow(X-C1.x,2)-pow(Z-C1.z,2); #if(Dsc>=0) #local Y = max(Y,sqrt(Dsc)+C1.y); #end Y #end // disegno la superficie con un insieme di palline #declare N = 60; #declare M = 60; #declare I = 0; #while(I; sphere {P,0.04 texture {Silver_Metal}} #local J=J+1; #end #local I=I+1; #end