// Last edited on 2023-12-30 05:51:29 by stolfi #version 3.7; global_settings { assumed_gamma 2.2 } #include "direcao_do_sol.inc" #include "parametros.inc" background{ color rgb < 0.5, 0.5, 0.5 > } #declare branco = texture{ pigment{ color rgb < 1 1 1 > } finish{ diffuse 0.5 ambient 0.5 reflection 0.25} } #declare preto = texture{ pigment{ color rgb < 0 0 0 > } finish{ diffuse 0.5 ambient 0.5 reflection 0.25} } #declare vermelho= texture{ pigment{ color rgb < 0.9 0.1 0.1 > } finish{ diffuse 0.3 ambient 0.3 reflection 0.25} } #declare azul= texture{ pigment{ color rgb < 0.1 0.1 0.9 > } finish{ diffuse 0.5 ambient 0.5 reflection 0.25} } #declare verde= texture{ pigment{ color rgb < 0.1 0.9 0.1 > } finish{ diffuse 0.5 ambient 0.5 reflection 0.25} } #declare roxo= texture{ pigment{ color rgb < 0.9 0.1 0.9 > } finish{ diffuse 0.5 ambient 0.5 reflection 0.25} } #declare tx_panel= texture{ pigment{ color rgb <1,0,0>} finish{ ambient 1 diffuse 0} } #macro painel(ang) polygon{ 4, <10,0,0>, <2,4,0>, <2*cos(2*pi/5), 4, 2*sin(2*pi/5)>, <10*cos(2*pi/5), 0, 10*sin(2*pi/5)> scale <0.9,0.9,0.9> translate < sqrt(2)/2*cos(2*pi/10), sqrt(2)/2 ,sqrt(2)/2*sin(2*pi/10) > rotate ang*y texture{ tx_panel } } #end union{ prism { conic_sweep linear_spline 0.2, // height 1 1, // height 2 6, // the number of points making up the shape... <10,0>, <10 *cos(2*pi/5),10*sin(2*pi/5)>, <10 *cos(2*pi*2/5),10*sin(2*pi*2/5)>, <10 *cos(2*pi*3/5),10*sin(2*pi*3/5)>, <10 *cos(2*pi*4/5),10*sin(2*pi*4/5)>, <10,0> rotate <180, 0, 0> translate <0, 1, 0> scale <1, 4, 1> pigment{ color rgb < 0.300, 0.400, 1.000 > } } polygon{ 5, <1,4,0>, <1 *cos(2*pi/5),4,1*sin(2*pi/5)>, <1 *cos(2*pi*2/5),4,1*sin(2*pi*2/5)>, <1 *cos(2*pi*3/5),4,1*sin(2*pi*3/5)>, <1 *cos(2*pi*4/5),4,1*sin(2*pi*4/5)> texture{tx_panel} } // painel lateral object{ painel(0) } object{ painel(72) } object{ painel(144) } object{ painel(216) } object{ painel(288) } rotate 90*x } #local dir_norte = < 0.0, cos(radians(lat)), sin(radians(lat)) >; #local dir_sol = direcao_do_sol(lat, lon, mes, hora); #include "eixos.inc" #local cmp_eixos = 5.0; // object{ eixos(cmp_eixos) } #declare cmin = < -8.5, -9.9, 00.0 >; #declare cmax = < +9.9, +9.9, +5.0 >; #declare centro_cena = (cmin + cmax)/2; #include "gaiola.inc" // object{ gaiola(cmin,cmax) } object{ gaichao(cmin,cmax) } #include "camsol.inc" #declare raio_cena = 0.65*vlength(cmax-cmin); #declare intens_luz = 1.20; // #declare vista = 3; camsol(centro_cena, raio_cena, vista, dir_norte, dir_sol, intens_luz)