/* A crystal To Laura Staum */ #include "colors.inc" #include "textures.inc" #declare section = intersection { plane { x, // unit surface normal, vector points "away from surface" 1 // distance from the origin in the direction of the surface normal rotate 50*z } plane { x, 1 rotate -27*z } plane { x, 1 rotate <0,360/16,70> translate .05*y } } #declare completed = intersection { object {section} object {section rotate y*360/8} object {section rotate y*2*360/8} object {section rotate y*3*360/8} object {section rotate y*4*360/8} object {section rotate y*5*360/8} object {section rotate y*6*360/8} object {section rotate y*7*360/8} plane { y, tan(degrees(60))/2 } } #declare blsph = union { sphere { <3/4,-1,0> .15 texture {pigment {color Blue }} } union { cylinder { <3/4,-1,0> <1,-1.5,0> .1 } sphere { <1,-1.5,0> .1 } cylinder{ <1,-1.5,0> <1,-205,0> .1 } texture{pigment{color White}} } } #declare blsphs = union { object {blsph} object {blsph rotate y*360/8} object {blsph rotate y*2*360/8} object {blsph rotate y*3*360/8} object {blsph rotate y*4*360/8} object {blsph rotate y*5*360/8} object {blsph rotate y*6*360/8} object {blsph rotate y*7*360/8} } #declare crystalplus = union { object {blsphs} object { completed pigment{color rgbf <.8,.8,.8,.6>} finish { phong 1 irid { 0.5 thickness 0.3 turbulence 0.4 } } } plane { y,-2.5 texture{pigment{color White}} } union { cylinder { y*(-2.5) y*(-2.05) 1.5 } cylinder { y*(-2.5) y*(-2.1) 1.6 } cylinder { y*(-2.5) y*(-2.2) 1.7 } cylinder { y*(-2.5) y*(-2.3) 1.8 } cylinder { y*(-2.5) y*(-2.4) 1.9 } texture{pigment{color rgbf .5}} } union { torus { 20, .51 rotate 18 } torus { 20, .51 rotate 37 } torus { 20, .51 rotate 144 } torus { 20, .51 rotate <30,20,10> } torus { 20, .51 rotate <414,80,277> } torus { 20, .51 rotate 80 } torus { 20, .51 } torus { 20, .51 rotate -144 } torus { 20, .51 rotate -97 } torus { 20, .51 rotate -212 } texture{Shadow_Clouds} } /* union { torus {5,.3} torus {3,.3} torus {10,.3} torus {15,.3} torus {18,.3} texture { pigment {color rgbf 1} finish {phong .5}} } */ } object {crystalplus} light_source {y*3 color rgb .5} light_source {<3,1.5,4> color rgb 1} //sphere { 0 1 pigment{ rgbf <1,1,1,.5>}} camera { location <2.1,1.1,2> look_at 0}