// Exemplo de arquivo de descricao de cena para POV-ray // Last edited on 2003-09-04 15:25:26 by stolfi // ====================================================================== // CÂMERA camera { location < 40, -40, 10 > // Posição do observador. right -1.3333*x // Largura RELATIVA da imagem. up 1.00*y // Altura RELATIVA da imagem. sky z // Qual direção é "para cima"? look_at < 15, -15, 0 > // Para onde a câmera está apontando. } // Nota: os parâmetros "right" e "up" devem ter a mesma proporção // que os parâmetros ${WIDTH} e ${HEIGHT} no Makefile. // ====================================================================== // FONTES DE LUZ light_source { 10 * < +50.0, +30.0, +50.0 > // Posição da lâmpada. color rgb 1.2 * < 1.00, 1.00, 1.00 > // Intensidade e corda luz. } light_source { 10 * < +50.0, -10.0, +10.0 > // Posição da lâmpada. color rgb 0.8 * < 1.00, 1.00, 1.00 > // Intensidade e corda luz. } // ====================================================================== // DESCRIÇÃO DA CENA background{ color rgb < 0.75, 0.80, 0.85 > } #declare peaum = merge { cylinder { <0.5, -0.5, 0.1>, <0.5, -0.5, 0.2>, 0.4 } cone { <0.5, -0.5, 0.2>, 0.25, <0.5, -0.5, 1.2>, 0.05 } sphere { <0.5, -0.5, 1.4>, 0.2 } } #declare rei = merge { cylinder { <0.5, -0.5, 0.1>, <0.5, -0.5, 0.2>, 0.4 } cone { <0.5, -0.5, 0.2>, 0.25, <0.5, -0.5, 1.2>, 0.05 } box { <0.45, -0.45, 1.2>, <0.55, -0.55, 1.6> } box { <0.30, -0.45, 1.35>, <0.70, -0.55, 1.45> } } #declare torre = merge { cylinder { <0.5, -0.5, 0.1>, <0.5, -0.5, 0.2>, 0.4 } cone { <0.5, -0.5, 0.2>, 0.25, <0.5, -0.5, 1.2>, 0.05 } difference { cylinder { <0.5, -0.5, 1.2>, <0.5, -0.5, 1.4>, 0.2 } cylinder { <0.5, -0.5, 1.25>, <0.5, -0.5, 1.5>, 0.15 } } } // Aqui está a cena, finalmente: plane { z, 0 pigment { color rgb <1, 1, 0> } } #declare roleta = seed(4675); #declare peoes = 0; #declare torres = 0; #declare pecas = 0; #declare aleatorio = 0; #declare aleatorio2 = 0; // Tabuleiro #declare i=0; #declare j=0; #declare k=1; #while (i<30) #while (j<30) box { , #if (mod(k,2) = 0) pigment { color rgb <1, 1, 1> } #else pigment {color rgb <0, 0, 0> } #end #declare k = k + 1; } #declare j = j + 1; #end #declare j=0; #declare i = i + 1; #declare k = k + 1; #end // Peças #declare posicaox = int(30*rand(roleta)); #declare posicaoy = int(30*rand(roleta)); object { rei pigment { color rgb <0, 1, 0> } translate } #declare posicaox = int(30*rand(roleta)); #declare posicaoy = int(30*rand(roleta)); object { rei pigment { color rgb <0, 0, 1> } translate } #while (pecas < 98) #declare aleatorio = int(2*rand(roleta)+1); #declare aleatorio2 = int(2*rand(roleta)+1); #declare posicaox = int(30*rand(roleta)); #declare posicaoy = int(30*rand(roleta)); #if (aleatorio = 1) #declare cor = color rgb <0, 1, 0>; #else #declare cor = color rgb <0, 0, 1>; #end #if (aleatorio2 = 1) object { peaum pigment { cor } translate } #else object { torre pigment { cor } translate } #end #declare pecas = pecas + 1; #end