// Exercício de Laboratório 4 // Aluno: Gustavo Fernandez da Costa // RA: 169296 // ====================================================================== // CORES E TEXTURAS background{ color rgb < 0.8, 0.7, 0.5 > } #declare tx_corda = texture{ pigment{ color rgb < 0.3, 0.2, 0.2 > } finish{ diffuse 0.9 ambient 0.1 } } // ====================================================================== // DESCRICAO DA CENA #include "eixos.inc" #macro corda_circular(raio, n_elos) union{ #declare i=0; #while ( i <= 1 ) #declare pos = i*2*pi; #declare centro = < 5*sin(pos), 5*cos(pos), 0 >; object{ sphere { , raio texture {tx_corda}}} #declare i = i + 1/n_elos; #end } #end #macro corda_quadrada(raio, n_elos) union{ #declare i=0; #while ( i <= 1 ) #declare pos = i*2*pi; #if (i <= 0.25) #declare centro = < 20*sin(pos) - 10, 0, 0 >; #else #if (i <= 0.5) #declare centro = < 10, 0, -20*cos(pos) >; #else #if (i <= 0.75) #declare centro = < -20*cos(pos) - 10, 0, 20 >; #else #declare centro = < -10, 0, -20*sin(pos) >; #end #end #end object{ sphere { , raio texture {tx_corda}}} #declare i = i + 1/n_elos; #end } #end #macro corda_pista(raio, n_elos) union{ #declare i=0; #while ( i <= 1 ) #declare pos = i*2*pi; #if (i <= 0.125) //pos de 0 a pi/4 #declare centro = < 0, 0, 18*sin(2*pos) >; #else #if (i <= 0.25) // pos de pi/4 a pi/2 #declare centro = < -2 + 2*sin(2*pos), 0, 18 - 2*cos(2*pos) >; #else #if (i <= 0.375) //pos de pi/2 a 3pi/4 #declare centro = < -2 + 18*sin(2*pos), 0, 20 >; #else #if (i <= 0.5) //pos de 3pi/4 a pi #declare centro = < -20 + 4*sin(4*pos), 0, 16 - 4*cos(4*pos) >; #else #if (i <= 0.625) //pos de 0 a pi/4 #declare centro = < -20 + 4*sin(2*pos), 0, 12 >; #else #if (i <= 0.75) //pos de pi/4 a pi/2 #declare centro = < -16 - 6*cos(2*pos), 0, 6 + 6*sin(2*pos) >; #else #if (i <= 0.875) //pos de pi/2 a 3pi/4 #declare centro = < -10, 0, 6 + 6*sin(2*pos) >; #else //pos de 3pi/4 a pi #declare centro = < -5 + 5*cos(4*pos) , 0, 5*sin(4*pos) >; #end #end #end #end #end #end #end object{ sphere { , raio texture {tx_corda}}} #declare i = i + 1/n_elos; #end } #end // CENA union{ object{ eixos(3.00) } object{ corda_pista(0.5, 700) } } #include "camlight.inc" #declare centro_cena = < 0.00, 0.00, 0.00 >; #declare raio_cena = 50.0; #declare dir_camera = < 1.0, 1.0, 1.0 >; #declare dist_camera = 10*raio_cena; #declare intens_luz = 1.20; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)