// Last edited on 2009-11-24 22:23:13 by stolfilocal // Processed by remove-cam-lights #macro eixo(ponta,cor,nome) union{ sphere{ <0,0,0>, 0.02 } cylinder{ <0,0,0>, 0.91*ponta, 0.02 } cone{ 0.90*ponta, 0.06, ponta, 0.00 } texture{ pigment{ color rgb cor } finish{ ambient 0.5 diffuse 0.5 } } } #end #macro eixos(tamanho) union{ object{ eixo( , <1.0,0.2,0.2>, "X") } object{ eixo( <0,tamanho,0>, <0.0,0.8,0.0>, "Y") } object{ eixo( <0,0,tamanho>, <0.3,0.3,1.0>, "Z") } } #end #include "nuvens.inc" #declare tx_carro = texture{ pigment{ color rgb < 0.20, 1.00, 0.50 > } finish{ diffuse 0.5 ambient 0.2 reflection 0.3*<1,1,1> } } #declare tx_grade = texture{ pigment{ color rgb < 1.00, 0.80, 0.10 > } finish{ diffuse 0.9 ambient 0.1 } } #declare raio = 2.000; #include "retalho.inc" #declare grid_rd = 0.025; #macro metade_carro(sz) union { #declare p11=<1,-1.3,0>; #declare p12=<1,-1,2*sz>; #declare p13=<1,-.5,2*sz>; #declare p21=<2,-1.2,0>; #declare p22=<2,-1,1>; #declare p23=<2,-.5,1>; #declare p31=<3,-1.1,0>; #declare p32=<3,-1,1>; #declare p33=<3,-.5,1>; #declare p41=<3.2,-1.05,0>; #declare p42=<3.2,-1,0>; #declare p43=<3.2,-.5,-.16>; #declare q12=<1,0,2*sz>; #declare q13=<1,.5,2*sz>; #declare q14=<1,1,2*sz>; #declare q22=<2,0,1>; #declare q23=<2,.5,1>; #declare q24=<2,1,1>; #declare q32=<3,0,1>; #declare q33=<3,.5,1>; #declare q34=<3,1,0>; #declare q42=<3.2,0,0.5>; #declare q43=<3.2,.5,0.5>; #declare q44=<3.2,1,0>; #declare p14=(p13+q12)/2; #declare p24=(p23+q22)/2; #declare p34=(p33+q32)/2; #declare p44=(p43+q42)/2; #declare q11=p14; #declare q21=p24; #declare q31=p34; #declare q41=p44; #declare r12=<1,1,4*sz>; #declare r13=<1,2,4*sz>; #declare r14=<1,3,4*sz>; #declare r22=<2,1,4*sz>; #declare r23=<2,2,4*sz>; #declare r24=<2,3,4*sz>; #declare r32=<3,1,1>; #declare r33=<3,2,1>; #declare r34=<3,3,0>; #declare r42=<3.2,1,-.16>; #declare r43=<3.2,2,0>; #declare r44=<3.2,3,0>; #declare q14=(q13+r12)/2; #declare q24=(q23+r22)/2; #declare q34=(q33+r32)/2; #declare q44=(q43+r42)/2; #declare r11=q14; #declare r21=q24; #declare r31=q34; #declare r41=q44; #declare s12=<1,4,4*sz>; #declare s13=<1,4.5,4*sz>; #declare s14=<1,5,4*sz>; #declare s22=<2,4,4*sz>; #declare s23=<2,4.5,4*sz>; #declare s24=<2,5,4*sz>; #declare s32=<3,4,1>; #declare s33=<3,4.5,1>; #declare s34=<3,5,0>; #declare s42=<3.2,4,0>; #declare s43=<3.2,4.5,0>; #declare s44=<3.2,5,-0.26>; #declare r14=(r13+s12)/2; #declare r24=(r23+s22)/2; #declare r34=(r33+s32)/2; #declare r44=(r43+s42)/2; #declare s11=r14; #declare s21=r24; #declare s31=r34; #declare s41=r44; #declare t12=<1,5.5,4*sz>; #declare t13=<1,6,4*sz>; #declare t14=<1,6.5*sz,p23.z>; #declare t22=<2,5.5,4*sz>; #declare t23=<2,6,4*sz>; #declare t24=<2,6.5,4*sz>; #declare t32=<3,5.5,1>; #declare t33=<3,6,1>; #declare t34=<3,6.5,0>; #declare t42=<3.2,5.5,0.5>; #declare t43=<3.2,6,0.5>; #declare t44=<3.2,6.5,0>; #declare s14=(s13+t12)/2; #declare s24=(s23+t22)/2; #declare s34=(s33+t32)/2; #declare s44=(s43+t42)/2; #declare t11=s14; #declare t21=s24; #declare t31=s34; #declare t41=s44; #declare u12=<1,6.5,4*sz>; #declare u13=<1,7.5,4*sz>; #declare u14=<1,8.5,p23.z>; #declare u22=<2,6.5,4*sz>; #declare u23=<2,7.5,4*sz>; #declare u24=<2,8.5,4*sz>; #declare u32=<3,6.5,1*sz>; #declare u33=<3,7.5,1*sz>; #declare u34=<3,8.5,0>; #declare u42=<3.2,6.5,-0.26>; #declare u43=<3.2,7.5,0>; #declare u44=<3.2,8.5,0>; #declare t14=(t13+u12)/2; #declare t24=(t23+u22)/2; #declare t34=(t33+u32)/2; #declare t44=(t43+u42)/2; #declare u11=t14; #declare u21=t24; #declare u31=t34; #declare u41=t44; object{ retalho(p11,p12,p13,p14,p21,p22,p23,p24,p31,p32,p33,p34,p41,p42,p43,p44, tx_grade, tx_carro) } object{ retalho(q11,q12,q13,q14,q21,q22,q23,q24,q31,q32,q33,q34,q41,q42,q43,q44, tx_grade, tx_carro) } object{ retalho(r11,r12,r13,r14,r21,r22,r23,r24,r31,r32,r33,r34,r41,r42,r43,r44, tx_grade, tx_carro) } object{ retalho(s11,s12,s13,s14,s21,s22,s23,s24,s31,s32,s33,s34,s41,s42,s43,s44, tx_grade, tx_carro) } object{ retalho(t11,t12,t13,t14,t21,t22,t23,t24,t31,t32,t33,t34,t41,t42,t43,t44, tx_grade, tx_carro) } object{ retalho(u11,u12,u13,u14,u21,u22,u23,u24,u31,u32,u33,u34,u41,u42,u43,u44, tx_grade, tx_carro) } } #end #declare ck0 = 0; #declare sz_1=.4; #declare ck1 = .25; #declare sz_2=.6; #declare ck2 = .5; #declare sz_3=.9; #declare ck3 = .75; #declare sz_4=1.2; #declare ck4 = 1; #declare sz_5=.6; #macro pico(tt) (sin(pi*tt)/(pi*tt+0.0001)*cos(pi*tt/4)) #end #macro interp(tt,v1,v2,v3,v4) (pico(tt+1)*v1 + pico(tt)*v2 + pico(tt-1)*v3 + pico(tt-2)*v4) #end #macro cena(ck) #if ((ck>=ck0)&(ck=ck1)&(ck=ck2)&(ck<=ck3)) #local tt = (ck-ck2)/(ck3-ck2); #local sz=(1-tt)*sz_3 + tt*sz_4; #end #if ((ck < ck0) | (ck > ck3)) sphere{ <0,0,0>, 0.5 texture{ tx_carro } } #else union{ object{ metade_carro(sz) } object{ metade_carro(sz) scale <-1,1,1> translate <2,0,0> } } #end #end union { // object{ eixos(10) } object{ cena(clock) } } // Original camera parameters: // #local cam_ctr = <0.00,3.00,0.00> // #local cam_loc = <14.00,10.00,3.50> // #local cam_vec = (<14.00,10.00,3.50>-<0.00,3.00,0.00>) // #local cam_sky = z #include "camlight.inc" camlight(<1.00,4.50,1.00>,7.30,<10,10,10>,27.00,z,1.2)