//Aluno: Lucas Moreira Vidigal Infante //RA: 073371 background{ color rgb < 1.00, 1.00, 1.00 > } #declare valores = array[7]; #declare valores[0] = 1; #declare valores[1] = 2; #declare valores[2] = 3; #declare valores[3] = 4; #declare valores[4] = 8; #declare valores[5] = 11; #declare valores[6] = 6; /* #declare valores[7] = 0; #declar evalores[8] = 7; #declare valores[9] = 6; */ #macro bit(valor) union{ object { box{ <-0.1,-0.5,0>, <0.1,0.5,1> pigment { rgb < 1, 0, 0> }} } #if (valor = 0) object { box { <-0.05,-0.1,0>, <0.05,0.1,-0.5> pigment {rgb <0,1,0>}} rotate <0,-30,0> translate <0.1,0,0.4> } #else object { box { <-0.05,-0.1,0>, <0.05,0.1,0.5> pigment {rgb <0,1,0>}} rotate<0,30,0> translate <0.1,0,0.4> } #end } #end #macro fileira(quantidade, valor) #local i = quantidade; #local j = valor; union{ #while(i > 0) #local resto = mod(j,2); #local j = int(j/2); object {bit(resto) translate<0,i*1.5,0 >} #local i = i - 1; #end } #end #macro abaco(fileiras,bits,vals) #local k = fileiras; #local i = bits; #local j = vals; union{ box{ <-0.05,-0.5,0>, <0.05,0.5*bits*3.5,1* -fileiras *1.6>} #while(k > 0) object{ fileira(i,j[k-1]) translate <0,0, k * -1.5> } #local k = k-1; #end } #end #include "eixos.inc" union{ object{ eixos(3.00) } object{ abaco(7,7,valores) translate <0,-15,1>} object{ abaco(4,4,valores)} } #include "camlight.inc" #declare centro_cena = < 0.00, 0.00, 0.00 >; #declare raio_cena = 15.0; #declare dir_camera = <15, 5, 5>; #declare dist_camera = 15.0; #declare intens_luz = 0.80; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)