// Last edited on DATE TIME by USER // Processed by remove-cam-lights background{ color rgb < 0.75, 0.80, 0.85 > } #declare tx_plastico = texture{ pigment{ color rgb < 1, 0.5, 0.2 > } finish{ diffuse 0.8 ambient 0.1 specular 0.9 roughness 0.005 } } #declare tx_xadrez = texture{ pigment{ checker color rgb < 0.2, 0.2, 0.2 >, color rgb < 1, 1, 1> } finish{ diffuse 0.9 ambient 0.1 } scale 1 } #macro pata3 ( raio, ang3 ) #declare parte3 = cone{ <0, 2*raio, 0>, 0.2*raio <0, 0, 0>, 0.3*raio texture{ tx_plastico } } union{ object{ parte3 rotate<0,0,-ang3> } object{ parte3 rotate<0,0,-ang3> rotate<120,0,0> } object{ parte3 rotate<0,0,-ang3> rotate<240,0,0> } } #end #macro pata2 ( raio, ang2, ang3 ) #declare parte2 = cone{ <-2, 0, 0>, 0.5*raio <2*raio, 0, 0>, 0.4*raio texture{ tx_plastico } } union{ object{ parte2 } object{ pata3(raio, ang3) translate<2*raio,0,0> } } #end #macro pata1 ( raio, ang1, ang2, ang3 ) #declare parte1 = cone{ <-3*raio, 0, 0>, 0.5*raio <3*raio, 0, 0>, 0.4*raio texture{ tx_plastico } } union{ object{ parte1 } object{ pata2(raio, ang2, ang3) rotate<0,ang2,0> translate<3*raio + 4*raio*cos(radians(ang2)), 0, -4*raio*sin(radians(ang2))> } } #end #macro veiculo( raio, ang1F, ang1T, ang11_h, ang12_h, ang13_h, ang14_h, ang2F, ang2T, ang3F, ang3T) #declare corpo = cylinder{ <0,0,0>, <0,0,5*raio>, 2*raio texture{ tx_plastico } } union{ object{ corpo } object{ pata1 ( raio, ang1F, ang2F, ang3F ) rotate<0,ang1F,ang11_h> translate<1.9*raio + 3*raio*cos(radians(ang1F))-abs(raio*sin(radians(ang11_h))),3*raio*sin(radians(ang11_h)), -3*raio*sin(radians(ang1F))> } object{ pata1 ( raio, ang1F, ang2F, ang3F ) rotate<0,ang1F,90+ang12_h> translate<-3*raio*sin(radians(ang12_h)), 1.9*raio*(1-cos(radians(ang1F)))+5*raio*(cos(radians(ang1F)))-abs(raio*sin(radians(ang12_h))),-3*raio*sin(radians(ang1F))> } object{ pata1 ( raio, ang1T, ang2T, ang3T ) rotate<0,ang1T,180+ang13_h> translate<-1.9*raio - 3*raio*cos(radians(ang1T)) + abs(raio*sin(radians(ang13_h))),-3*raio*sin(radians(ang13_h)),-3*raio*sin(radians(ang1T))> } object{ pata1 ( raio, ang1T, ang2T, ang3T ) rotate<0,ang1T,270+ang14_h> translate<3*raio*sin(radians(ang14_h)),-1.9*raio*(1-cos(radians(ang1T)))-5*raio*(cos(radians(ang1T)))+abs(raio*sin(radians(ang14_h))),-3*raio*sin(radians(ang1T))> } } #end #macro veiculoAndando(f, angh1, angh2, angh3, angh4) #local ang_coxaF = interpola(f, 0.0, -5, 0.33, -50, 0.66, 30, 1, -30); #local ang_canelaF = interpola(f, 0.0, 120, 0.33, 140, 0.66, 30, 1, 120); #local ang_dedosF = interpola(f, 0.0, 80, 0.33, 0, 0.66, 0, 1, 80); #local ang_coxaT = interpola(f, 0.0, 5, 0.33, -50, 0.66, -30, 1, 30); #local ang_canelaT = interpola(f, 0.0, 30, 0.33, 140, 0.66, 120, 1, 30); #local ang_dedosT = interpola(f, 0.0, 0, 0.33, 80, 0.66, 80, 1, 0); #local l = 2; object{ veiculo( raio, ang_coxaF, ang_coxaT, angh1, angh2, angh3, angh4, ang_canelaF, ang_canelaT, ang_dedosF, ang_dedosT) rotate<0,0,-225> translate<-5*fase1,0,3*fase1> } #end #macro interpola(f, t0, v0, t1, v1, t2, v2, t3, v3) #local w=0; #if((f >= t0) & (f <= t1)) #local w = interpola2(f, t0, v0, t1, v1); #end #if((f >= t1) & (f <= t2)) #local w = interpola2(f, t1, v1, t2, v2); #end #if((f >= t2) & (f <= t3)) #local w = interpola2(f, t2, v2, t3, v3); #end w #end #macro interpola2(f, t0, v0, t1, v1) #local s = (f - t0)/(t1 - t0); ((1 - s)*v0 + s * v1) #end #declare chao = box{ <-100,-100,-1>, <+100,+100,0> } #include "eixos.inc" #declare fase1 = mod(clock,1); #local raio = 0.5; #local angIni1 = 0; #local angIni2 = 0; #local angIni3 = 0; #local angIni4 = 0; union{ object{ chao translate < 0,0,-7 > texture{ tx_xadrez } } object{veiculoAndando(fase1, angIni1, angIni2, angIni3 angIni4) } } #include "camlight.inc" #declare centro_cena = < -5*fase1, 4, 1.00 >; #declare raio_cena = 7.0; #declare dir_camera = < 10.00, 10.00, -10*fase1 >; #declare dist_camera = 10.0; #declare intens_luz = 1.00; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)