#include "eixos.inc" // Exemplo de arquivo de descricao de cena para POV-ray // Last edited on 2023-09-19 17:35:07 by stolfilocal // ====================================================================== // CORES E TEXTURAS background{ color rgb < 0.8, 0.8, 0.8 > } #declare tx_peca = texture{ pigment{ color rgb < 0.585, 0.292, 0 > } finish{ diffuse 0.9 ambient 0.1 } } // -------------------- hiperpeao -------------------- // #declare raio_menor = 0.10; #declare raio_medio = 0.15; #declare raio_maior = 0.20; #declare bolinha = sphere{ < 0,0,raio_maior+raio_medio+0.1 >, raio_menor } #declare bola = sphere{ < 0,0,raio_maior+0.05 >, raio_medio } #declare bolona = sphere{ < 0,0,0 >, raio_maior } #declare hiperpeao = union{ difference { object { bolona texture{ tx_peca }} object { box{<-raio_maior, -raio_maior, -raio_maior>, } } } object { bola texture{ tx_peca }} object { bolinha texture{ tx_peca }} } // -------------------- hiperdama -------------------- // #declare tamanho_maior = 0.2; #declare tamanho_medio = tamanho_maior/1.5; #declare tamanho_menor = tamanho_medio/1.5; #declare caixinha = box{<0, 0, 0> } #declare caixa = box{<0, 0, 0> } #declare caixona = box{<0, 0, 0> } #declare hiperdama = union { object {caixona texture{tx_peca} translate<-tamanho_maior/2, -tamanho_maior/2, 0>} object {caixa texture{tx_peca} translate <-tamanho_medio/2, -tamanho_medio/2, tamanho_maior>} object {caixinha texture{tx_peca} translate <-tamanho_menor/2, -tamanho_menor/2, tamanho_maior+tamanho_medio>} } #macro fileira (raio, n_casas, expessura, raio_casa) #declare tx_circulo = texture { pigment{ color rgb < 0.8, 0.7, 0.5 > } finish{ diffuse 0.9 ambient 0.1 } } #declare circulo = difference { object {cylinder{<0, 0, 0> <0, 0, expessura> raio} texture{tx_circulo}} object {cylinder{<0, 0, -expessura-0.1> <0, 0, expessura+0.1> raio-expessura} texture{tx_circulo}} } object {circulo} #declare tx_casa_preta = texture {pigment{ color rgb < 0, 0, 0 > }} #declare tx_casa_branca = texture {pigment{ color rgb < 1, 1, 1 > }} #declare casa_preta = object {cylinder {<0, 0, 0> <0, 0, expessura+0.1> raio_casa} texture{tx_casa_preta}} #declare casa_branca = object {cylinder {<0, 0, 0> <0, 0, expessura+0.1> raio_casa} texture{tx_casa_branca}} #declare i = 1.00; #declare angulo = 2*pi/n_casas; #while (i <= n_casas) #declare comp_x = sin(angulo*i)*raio; #declare comp_y = cos(angulo*i)*raio; #if (mod(i, 2) = 0) object {casa_branca translate} #else #if (mod(i, 2) != 0) object {casa_preta translate} #end #end #declare i = i+1; #end #end #macro tabuleiro(n_fileiras, n_casas) #declare expessura = 0.2; #declare raio_casa = n_fileiras/30; #declare j = 1; #while (j <= n_fileiras) #declare raio_utilizado = j*25/n_fileiras; union {fileira(raio_utilizado, n_casas, expessura, raio_casa) rotate <0, 0, j*360/n_casas>} #declare j = j+1; #end #end #declare nfileiras = 7; #declare ncasas = 15; // object {eixos (4)} tabuleiro(nfileiras, ncasas) object {hiperpeao scale 5 translate <27, 20, 0>} object {hiperdama scale 5 translate <20, 27, 0>} #include "camlight.inc" #declare centro_cena = < 0.00, 0.00, 0.00 >; #declare raio_cena = 30.0; #declare dir_camera = < 1.00, 1.00, 0.70 >; #declare dist_camera = 7*raio_cena; #declare intens_luz = 1.00; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)