// Zach Seifert // 2nd Hour // Special Topics // 3rd Image - Super Mega Triforce Fractal of Power! // April 6 2011 // Standard pre-defined colors #include "colors.inc" #include "transforms.inc" // perspective (default) camera camera { location <0.0, -45.0, -85.0> look_at <0.0, -35.0, 0.0> right x*image_width/image_height Rotate_Around_Trans(<0,clock*360,0>, <0-35,0>) } // An area light (creates soft shadows) light_source { <0,2,-5> color rgb 1.0 } plane { x, // unit surface normal, vector points "away from surface" 190.0 // distance from the origin in the direction of the surface normal hollow on // has an inside pigment? pigment {color Violet} } // one of the planes plane { y, // unit surface normal, vector points "away from surface" 180.0 // distance from the origin in the direction of the surface normal hollow on // has an inside pigment? pigment {color Grey} } #declare Pyramid = prism { conic_sweep linear_spline 0, // height 1 1, // height 2 4, // number of points // (--- the points ---) < -1, 0>, < 0, 1>, < 1, 0>, <-1,0> rotate <180, 0, 0> } //makes the first triforce that will be used many times #declare triforce = merge { object { Pyramid pigment {color Yellow} rotate } object { Pyramid pigment {color Green} translate < -2, 0 , 0> rotate <0,0,clock*360> } object { Pyramid pigment {color Red} translate < -1, 1 , 0> rotate } object { Pyramid pigment {color Blue} translate < -1, 0 , -1> rotate <0,clock*360,0> } } // merges several triforces together #declare doubleTriforce = merge { object { triforce } object { triforce translate <-2,-2,0> } object { triforce translate <2,-2,0> } object { triforce translate <0,-2,-2> } } #declare tripleTriforce = merge { object { doubleTriforce } object { doubleTriforce translate <-4,-4,0> } object { doubleTriforce translate <4,-4,0> } object { doubleTriforce translate <0,-4,-4> } } #declare fourTriforce = merge { object { tripleTriforce } object { tripleTriforce translate <-8,-8,0> } object { tripleTriforce translate <8,-8,0> } object { tripleTriforce translate <0,-8,-8> } } #declare fiveTriforce = merge { object { fourTriforce } object { fourTriforce translate <-16,-16,0> } object { fourTriforce translate <16,-16,0> } object { fourTriforce translate <0,-16,-16> } } #declare sixTriforce = merge { object { fiveTriforce } object { fiveTriforce translate <-32,-32,0> } object { fiveTriforce translate <32,-32,0> } object { fiveTriforce translate <0,-32,-32> } } //this is where i actually call the pyramids sixTriforce