// Exemplo de arquivo de descricao de cena para POV-ray // Last edited on 2017-05-07 20:10:09 by stolfilocal #include "colors.inc" #include "shapes.inc" #declare component_color = texture { pigment { color rgb <0.2, 0.2, 0.2> } } #macro Arc(BeadCount, A1, A2, A3, A4) #local BeadsPerSide = BeadCount/4; #local A = A1; #for (Bead, 1, BeadsPerSide, 1) sphere { A, 0.1 texture { component_color } } #declare A = A + (A2 - A1)/BeadsPerSide; #end #declare A = A2; #for (Bead, 1, BeadsPerSide, 1) sphere { A, 0.1 texture { component_color } } #declare A = A + (A3 - A2)/BeadsPerSide; #end #declare A = A3; #for (Bead, 1, BeadsPerSide, 1) sphere { A, 0.1 texture { component_color } } #declare A = A + (A4 - A3)/BeadsPerSide; #end #end background { color rgb <0.7, 0.7, 0.7> } camera { location <2, 4, 5> look_at <0, 1, 2> } light_source { <2, 4, -3> color White } #declare Points = array[6][4]; // Arc 0 #declare Points[0][0] = <-0.31, 1.03, 0.49>; #declare Points[0][1] = <-1.31, -1.87, 2.11>; #declare Points[0][2] = <2.77, -0.31, -0.99>; #declare Points[0][3] = <-2.771, 0.182, 1.991>; // Arc 1 #declare Points[1][0] = <-0.31, 1.03, 0.49>; #declare Points[1][1] = <-1.31, -1.87, 2.11>; #declare Points[1][2] = <2.77, -0.31, -0.99>; #declare Points[1][3] = <-2.771, 0.182, 1.991>; // Arc 2 #declare Points[2][0] = <2.819, 2.117, -2.79>; #declare Points[2][1] = <-0.881, -0.112, 0.78>; #declare Points[2][2] = <-1.102, 2.19, 1.891>; #declare Points[2][3] = <1.81, 0.619, -2.12>; // Arc 3 #declare Points[3][0] = <-1.44, 2.18, 0.189>; #declare Points[3][1] = <-0.991, 1.179, 2.11>; #declare Points[3][2] = <-1.510, -2.878, -0.009>; #declare Points[3][3] = <2.190, 1.013, 0.81>; // Arc 4 #declare Points[4][0] = <-1.117, 0.881, 0.551>; #declare Points[4][1] = <0.32, 0.718, 1.45>; #declare Points[4][2] = <-1.281, 2.09, 2.41>; #declare Points[4][3] = <0.01, 2.91, -1.39>; #declare Points[0][3] = (Points[0][2] + Points[1][0])/2; #declare Points[1][3] = (Points[1][2] + Points[2][0])/2; #declare Points[2][3] = (Points[2][2] + Points[3][0])/2; #declare Points[3][3] = (Points[3][2] + Points[4][0])/2; #declare Points[4][3] = Points[0][0]; Arc(1000, Points[0][0], Points[0][1], Points[0][2], Points[0][3]) Arc(1000, Points[0][3], Points[1][0], Points[1][1], Points[1][2]) Arc(1000, Points[1][2], Points[1][3], Points[2][0], Points[2][1]) Arc(1000, Points[2][1], Points[2][2], Points[2][3], Points[3][0]) Arc(1000, Points[3][0], Points[3][1], Points[3][2], Points[3][3]) Arc(1000, Points[3][3], Points[4][0], Points[4][1], Points[4][2]) Arc(1000, Points[4][2], Points[4][3], Points[0][0], Points[0][1])