// 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 interpola_linear(T,T0,T1,P0,P1) (P0+(T0+T/(T1-T0))*(P1-P0)) #end //P0 é o ponto de origem indo em direção ao ponto P1, e //P1 é o ponto de destino vindo da direção de P2 #macro interpola_3d(T, T0, T1, P0, P00, P1, P11) (P0*pow((1-(T0+T/(T1-T0))),3) + P00*3*(T0+T/(T1-T0))*pow((1-(T0+T/(T1-T0))),2) + 3*P11*pow((T0+T/(T1-T0)),2)*(1-(T0+T/(T1-T0))) + pow((T0+T/(T1-T0)),3)*P1) #end #macro faz_no(P1, P2) union{ #local T = 0; #local PM = (P1+P2)/2; #local PM2 = (PM+P2)/2; #while (T<=1000) //Curva 1 object{ sphere { interpola_3d(T,0,1000,P1,PM+<15,-3,10>,PM,P1+<-15,5,0>), 0.2 texture {tx_corda}}} //Curva 2 object{ sphere { interpola_3d(T,0,1000,PM,PM+<10,-5,1>,P2,P1+<-10,2,8>), 0.2 texture {tx_corda}}} #declare T = T+1; #end } #end // CENA union{ //object{ eixos(3.00) } object{ faz_no(<0,0,0>, <10,0,0>) } } #include "camlight.inc" #declare centro_cena = < 5.00, 0.00, 2.00 >; #declare raio_cena = 10; //#declare dir_camera = < 1.0, 1.0, 1.0 >; //#declare dir_camera = < 1, 0.2, 0.2 >; #declare dir_camera = < 1, 1, 0 >; //#declare dir_camera = < 1.0, 0, 1.0 >; //#declare dir_camera = < 0.0, -1.0, 1.0 >; #declare dist_camera = 4*raio_cena; #declare intens_luz = 1.20; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)