// Exemplo de arquivo de descricao de cena para POV-ray // Last edited on 2019-26-04 17:48:09 by Luis Gustavo // ====================================================================== // CORES E TEXTURAS background{ color rgb < 0.75, 0.80, 0.85 > } #declare tx_plastico = texture{ pigment{ color rgb < 0.10, 0.80, 1.00 > } finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 } } #declare tx_vermelho = texture{ pigment{ color rgb < 0.80, 0.10, 0.10 > } finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 } } #declare tx_pink = texture{ pigment{ color rgb < 0.98, 0.05, 0.75 > } finish{ diffuse 0.8 ambient 0.2 specular 0.5 roughness 0.005 } } #declare tx_orange = texture{ pigment{ color rgb < 0.98, 0.20, 0.20 > } finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.05 } } #declare tx_verde = texture{ pigment{ color rgb < 0.20, 0.90, 0.10 > } finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 } } #declare tx_fosca = texture{ pigment{ color rgb < 1.00, 0.80, 0.10 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_xadrez = texture{ pigment{ checker color rgb < 0.00, 0.0, 0.00 >, color rgb < 1.00, 0.97, 0.90 > } finish{ diffuse 0.9 ambient 0.1 } scale 1.0 } // ====================================================================== // DESCRIÇÃO DA CENA // Partes da cena: #declare bola = union { sphere{ < 0,0,2 >, 0.70 texture{ tx_verde } } } #include "eixos.inc" ////////////////////////////////// // Aqui está a cena, finalmente:// ////////////////////////////////// //Define cada elemento R[i][k] //Interpolando linearmando P[i][k] //e Q[i][k] //para i E 0...N-1, k E 0...3 #macro interpola1matriz(P,Q,N,c0,c1,cc,R) #local i=0; #while(i; #declare v1=<0,10,0>; #declare tt=t0; #while(tt; #declare v1=<0,10,10>; #declare tt=t0; #while(tt; #declare v1=<0,0,10>; #declare tt=t0; #while(tt; #declare v1=<0,0,0>; #declare tt=t0; #while(tt; #end #end // CURVA 0 // //Arco 0 #declare P[0][0][0]=<0,0,0>; #declare P[0][0][1]=<0,10,0>; #declare P[0][0][2]=<0,10,5>; #declare P[0][0][3]=<0,5,7>; //Arco 1 #declare P[0][1][0]=<0,5,7>; #declare P[0][1][1]=<-1,7,8>; #declare P[0][1][2]=<-2,3,8>; #declare P[0][1][3]=<-2,-7,10>; //Arco 2 #declare P[0][2][0]=<-2,-7,10>; #declare P[0][2][1]=<10,7,4>; #declare P[0][2][2]=<7,7,4>; #declare P[0][2][3]=<1,10,12>; //Arco 3 #declare P[0][3][0]=<1,10,12>; #declare P[0][3][1]=<-3,5,13>; #declare P[0][3][2]=<5,2,10>; #declare P[0][3][3]=<0,0,0>; // CURVA 1 // //Arco 0 #declare P[1][0][0]=<2,-3,0>; #declare P[1][0][1]=<6,6,3>; #declare P[1][0][2]=<7,0,5>; #declare P[1][0][3]=<0,7,3>; //Arco 1 #declare P[1][1][0]=<0,7,3>; #declare P[1][1][1]=<-1,7,8>; #declare P[1][1][2]=<-2,3,8>; #declare P[1][1][3]=<8,-3,10>; //Arco 2 #declare P[1][2][0]=<8,-3,10>; #declare P[1][2][1]=<10,7,4>; #declare P[1][2][2]=<7,7,4>; #declare P[1][2][3]=<-5,-7,-2>; //Arco 3 #declare P[1][3][0]=<-5,-7,-2>; #declare P[1][3][1]=<-3,5,13>; #declare P[1][3][2]=<5,2,10>; #declare P[1][3][3]=<2,-3,0>; // CURVA 2 // //Arco 0 #declare P[2][0][0]=<3,3,3>; #declare P[2][0][1]=<0,10,0>; #declare P[2][0][2]=<0,10,5>; #declare P[2][0][3]=<-5,8,4>; //Arco 1 #declare P[2][1][0]=<-5,8,4>; #declare P[2][1][1]=<-1,7,8>; #declare P[2][1][2]=<-2,3,8>; #declare P[2][1][3]=<-2,-7,10>; //Arco 2 #declare P[2][2][0]=<-2,-7,10>; #declare P[2][2][1]=<10,7,4>; #declare P[2][2][2]=<7,7,4>; #declare P[2][2][3]=<-3,5,4>; //Arco 3 #declare P[2][3][0]=<-3,5,4>; #declare P[2][3][1]=<-3,5,13>; #declare P[2][3][2]=<5,2,10>; #declare P[2][3][3]=<3,3,3>; // CURVA 3 // //Arco 0 #declare P[3][0][0]=<7,3,5>; #declare P[3][0][1]=<6,6,3>; #declare P[3][0][2]=<7,0,5>; #declare P[3][0][3]=<0,7,3>; //Arco 1 #declare P[3][1][0]=<0,7,3>; #declare P[3][1][1]=<-1,7,8>; #declare P[3][1][2]=<-2,3,8>; #declare P[3][1][3]=<-1,3,0>; //Arco 2 #declare P[3][2][0]=<-1,3,0>; #declare P[3][2][1]=<10,7,4>; #declare P[3][2][2]=<7,7,4>; #declare P[3][2][3]=<5,7,2>; //Arco 3 #declare P[3][3][0]=<5,7,2>; #declare P[3][3][1]=<-3,5,13>; #declare P[3][3][2]=<5,2,10>; #declare P[3][3][3]=<7,3,5>; // CURVA 4 // //Arco 0 #declare P[4][0][0]=<-3,2,7>; #declare P[4][0][1]=<0,10,0>; #declare P[4][0][2]=<0,10,5>; #declare P[4][0][3]=<0,-5,-7>; //Arco 1 #declare P[4][1][0]=<0,-5,-7>; #declare P[4][1][1]=<-1,7,8>; #declare P[4][1][2]=<-2,3,8>; #declare P[4][1][3]=<-2,-7,10>; //Arco 2 #declare P[4][2][0]=<-2,-7,10>; #declare P[4][2][1]=<10,7,4>; #declare P[4][2][2]=<7,7,4>; #declare P[4][2][3]=<-1,5,6>; //Arco 3 #declare P[4][3][0]=<1,5,6>; #declare P[4][3][1]=<-3,5,13>; #declare P[4][3][2]=<5,2,10>; #declare P[4][3][3]=<-3,2,7>; // CURVA 5 // //Arco 0 #declare P[5][0][0]=<0,0,0>; #declare P[5][0][1]=<0,10,0>; #declare P[5][0][2]=<0,10,5>; #declare P[5][0][3]=<0,5,7>; //Arco 1 #declare P[5][1][0]=<0,5,7>; #declare P[5][1][1]=<-1,7,8>; #declare P[5][1][2]=<-2,3,8>; #declare P[5][1][3]=<-2,-7,10>; //Arco 2 #declare P[5][2][0]=<-2,-7,10>; #declare P[5][2][1]=<10,7,4>; #declare P[5][2][2]=<7,7,4>; #declare P[5][2][3]=<1,10,12>; //Arco 3 #declare P[5][3][0]=<1,10,12>; #declare P[5][3][1]=<-3,5,13>; #declare P[5][3][2]=<5,2,10>; #declare P[5][3][3]=<0,0,0>; #declare tk=array[NK] #declare tk[0]=0.000; #declare tk[1]=0.200; #declare tk[2]=0.400; #declare tk[3]=0.600; #declare tk[4]=0.800; #declare tk[5]=1.000; #local clk=clock; #local k=busca_tempo(clk, NK, tk); interpola1matriz2(P, NA, tk[k],tk[k+1], clk, R, k,k+1) object{ noh(R,NA,M) } } #end //b = numero de bolas //r = raio #macro roda(a,b,n,r) union{ #while (a } #declare a = a+1/n; #end } #end ////Chamada da cena curvas() //object{ eixos(15.00) } #include "camlight.inc" #declare centro_cena = < 0.00, 0.00, 7.00>; #declare raio_cena = 25.0; #declare dir_camera = < 14.00, 7.00, 4.00 >; #declare dist_camera = 50*raio_cena; #declare intens_luz = 1.20; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)