#include "colors.inc" #include "textures.inc" #include "shapes.inc" #include "shapes2.inc" #include "metals.inc" #declare c=6.5 #declare c1=camera {location <0,0,-c> look_at<0,-.25,0>} #declare c2=camera {location <0,0,c> look_at<0,0,0>} #declare c3=camera {location look_at<0,0,0>} #declare c4=camera {location <-c,0,0> look_at<0,0,0>} #declare c5=camera {location <0,c,0> look_at<0,0,0>} #declare c6=camera {location <0,-c,0> look_at<0,0,0>} camera {c1} plane { y, // unit surface normal, vector points "away from surface" -4.0 // distance from the origin in the direction of the surface normal pigment {hexagon pigment{ P_Chrome3 },pigment { P_Silver3 }, pigment { P_Copper3 }scale 3} finish { F_MetalB }} sky_sphere { pigment { Blue_Sky2 } } // texture pigment/normal pattern // create a hexagonal pattern texture with 3 colors // hexagons are in the X-Z plane, extending infinitely in Y plane light_source {<1,3,-6> color White} //light_source {<0,0,c> color White} //light_source { color White} //light_source {<-c,0,0> color White} //light_source {<0,c,0> color White} //light_source {<0,-c,0> color White} #declare T= .38196601125 #declare P13=<1-T,T,0> #declare P14=<1-T,-T,0> #declare P23= #declare P24= #declare P35=<0,1-T,T> #declare P36=<0,1-T,-T> #declare P45=<0,T-1,T> #declare P46=<0,T-1,-T> #declare P51= #declare P52=<-T,0,1-T> #declare P61= #declare P62=<-T,0,T-1> #declare dodeca1= union{ triangle {P13 P35 P51} triangle {P13 P35 P36} triangle {P13 P61 P36} triangle {P13 P61 P14} triangle {P13 P14 P51} triangle {P23 P36 P35} triangle {P23 P36 P62} triangle {P23 P62 P24} triangle {P23 P24 P52} triangle {P23 P52 P35} triangle {P46 P14 P61} triangle {P46 P61 P62} triangle {P46 P62 P24} triangle {P46 P24 P45} triangle {P46 P45 P14} triangle {P61 P62 P36} triangle {P14 P51 P45} triangle {P51 P35 P52} triangle {P51 P45 P52} triangle {P52 P24 P45} } #declare k=28 #declare q=4 #declare m=.2 //object {dodeca1 rotate k*x scale 3.3 pigment{rgbt<0,1,0,.3>}} #declare pain=union{ polygon{ 5 P51, , , <0,0,1-T>, P51} polygon{ 5 P45, , <0,(m-1)*(1-T),T-2*T*m+m>, <-T/2,(T-1)/2,1/2>, P45 } polygon{ 5 P52, <0,0,1-T>, <-T+3*T*m/2,(T*m-m)/2,1-T+m*T-m/2>, <-T/2,(T-1)/2,1/2>, P52 } polygon{ 5 P52, <-1/2,-T/2,(1-T)/2>, <-T+(3*T*m-m)/2,-m/2,1-T+3*m*T/2-m>, <-T/2,(T-1)/2,1/2>, P52 } polygon{ 5 P24, <-1/2,-T/2,(1-T)/2>, , <(T-1)/2,-1/2,T/2>, P24 } polygon{ 5 P45, <(T-1)/2,-1/2,T/2>, <-m/2,T-1+m-3*T*m/2,T+(m-3*T*m)/2>, <-T/2,(T-1)/2,1/2>, P45} polygon{ 5 P51, <0,0,1-T>, , , P51 } polygon{ 5 P52, <0,0,1-T>, <-T+3*T*m/2,(m-m*T)/2,1-T+m*T-m/2>, <-T/2,(1-T)/2,1/2>, P52 } polygon{ 5 P35, , <0,1-T+m*T-m,T+m-2*m*T>, <-T/2,(1-T)/2,1/2>, P35 } polygon{ 5 P14, <1/2,-T/2,(1-T)/2>, <1-T+3*m*T/2-m,-T+(3*T*m-m)/2,m/2>, <(1-T)/2,-1/2,T/2>, P14 } polygon{ 5 P51, <1/2,-T/2,(1-T)/2>, , , P51 } polygon{ 5 P45, <(1-T)/2,-1/2,T/2>, , , P45 } polygon{ 5 P62, <-T/2,(1-T)/2,-1/2>, <-T+3*T*m/2,(m-m*T)/2,T-1+m/2-T*m>, <0,0,T-1>, P62 } polygon{ 5 P61, , , <0,0,T-1>, P61 } polygon{ 5 P36, , <0,1-T+m*T-m,-T+2*T*m-m>, <-T/2,(1-T)/2,-1/2>, P36 } polygon{ 5 P46, <0,T-1,0>, <(m-T*m)/2,T-1+m/2-T*m,-T+3*T*m/2>, <(1-T)/2,-1/2,-T/2>, P46 } polygon{ 5 P45, <0,T-1,0>, <(m-T*m)/2,T-1+m/2-T*m,T-3*T*m/2>, <(1-T)/2,-1/2,T/2>, P45 } polygon{ 5 P14, <(1-T)/2,-1/2,T/2>, <1-T-m+T*m,-T+2*T*m-m,0>, <(1-T)/2,-1/2,-T/2>, P46 } polygon{ 5 P46, <0,T-1,0>, <(T*m-m)/2,T-1+m/2-T*m,-T+3*T*m/2>, <(T-1)/2,-1/2,-T/2>, P46 } polygon{ 5 P24, <(T-1)/2,-1/2,T/2>, , <(T-1)/2,-1/2,-T/2>, P24 } polygon{ 5 P45, <0,T-1,0>, <(T*m-m)/2,T-1+m/2-T*m,T-3*T*m/2>, <(T-1)/2,-1/2,T/2>, P45 } polygon{ 5 P46, <-T/2,(T-1)/2,-1/2>, <-m/2,T-1+m-3*T*m/2,-T+(3*T*m-m)/2>, <(T-1)/2,-1/2,-T/2>, P46 } polygon{ 5 P24, <-1/2,-T/2,(T-1)/2>, , <(T-1)/2,-1/2,-T/2>, P24 } polygon{ 5 P62, <-T/2,(T-1)/2,-1/2>, <-T+(3*T*m-m)/2,-m/2,T-1+m-3*T*m/2>, <-1/2,-T/2,(T-1)/2>, P62 } polygon{ 5 P46, , <0,T-1+m-T*m,-T+2*T*m-m>, <-T/2,(T-1)/2,-1/2>, P46 } polygon{ 5 P62, <0,0,T-1>, <(3*T*m-2*T)/2,(m*T-m)/2,T-1-m*T+m/2>, <-T/2,(T-1)/2,-1/2>, P62} polygon{ 5 P61, , <(2*T-3*T*m)/2,(m*T-m)/2,T-1+(m/2)-(T*m)>, <0,0,T-1>, P61 } polygon{ 5 P46, <(1-T)/2,-1/2,-T/2>, , , P46 } polygon{ 5 P14, <(1-T)/2,-1/2,-T/2>, <1-T-m+3*T*m/2,-T+(3*T*m-m)/2,-m/2>, <1/2,-T/2,(T-1)/2>, P14 } polygon{ 5 P61, <(1-T)/2,-1/2,-T/2>, , <1/2,-T/2,(T-1)/2>, P61 } polygon{ 5 P23, <-1/2,T/2,(1-T)/2>, , <(T-1)/2,1/2,T/2>, P23 } polygon{ 5 P52, <-1/2,T/2,(1-T)/2>, <-T+(3*T*m-m)/2,m/2,1-T-m+3*T*m/2>, <-T/2,(1-T)/2,1/2>, P52 } polygon{ 5 P35, <-T/2,(1-T)/2,1/2>, <-m/2,1-T-m+3*T*m/2,T+(m-3*T*m)/2,>, <(T-1)/2,1/2,T/2>, P35 } polygon{ 5 P23, , , <-1/2,T/2,(1-T)/2>, P23 } polygon{ 5 P24, , , <-1/2,-T/2,(1-T)/2>, P24 } polygon{ 5 P52, <-1/2,-T/2,(1-T)/2>, <-T+2*T*m-m,0,1-T+T*m-m>, <-1/2,T/2,(1-T)/2>, P52 } polygon{ 5 P23, <-1/2,T/2,(T-1)/2>, , <(T-1),0,0>, P23 } polygon{ 5 P62, <-1/2,T/2,(T-1)/2>, <-T+2*T*m-m,0,T-1+m-T*m>, <-1/2,-T/2,(T-1)/2>, P62 } polygon{ 5 P24, <-1/2,-T/2,(T-1)/2>, , <(T-1),0,0>, P24 } polygon{ 5 P23, <(T-1)/2,1/2,-T/2>, , <-1/2,T/2,(T-1)/2>, P23 } polygon{ 5 P36, <(T-1)/2,1/2,-T/2>, <-m/2,1-T-m+3*T*m/2,-T+(-m+3*T*m)/2>, <-T/2,(1-T)/2,-1/2>, P36 } polygon{ 5 P62, <-T/2,(1-T)/2,-1/2>, <-T+(-m+3*T*m)/2,m/2,T-1+m-3*T*m/2>, <-1/2,T/2,(T-1)/2>, P62 } polygon{ 5 P23, <(T-1)/2,1/2,-T/2>, , <(T-1)/2,1/2,T/2>, P23 } polygon{ 5 P35, <0,1-T,0>, <(T*m-m)/2,1-T-m/2+T*m,T-3*T*m/2>, <(T-1)/2,1/2,T/2>, P35 } polygon{ 5 P36, <(T-1)/2,1/2,-T/2>, <(T*m-m)/2,1-T-m/2+T*m,-T+3*T*m/2>, <0,1-T,0>, P36 } polygon{ 5 P13, <1-T,0,0>, <1-T-m/2+T*m,T-3*T*m/2,(m-T*m)/2>, <1/2,T/2,(1-T)/2>, P13 } polygon{ 5 P14, <1-T,0,0>, <1-T-m/2+T*m,-T+3*T*m/2,(m-T*m)/2>, <1/2,-T/2,(1-T)/2>, P14 } polygon{ 5 P51, <1/2,-T/2,(1-T)/2>, , <1/2,T/2,(1-T)/2>, P51 } polygon{ 5 P13, <1/2,T/2,(T-1)/2>, <1-T-m/2+T*m,T-3*T*m/2,(T*m-m)/2>, <1-T,0,0>, P13 } polygon{ 5 P61, <1/2,T/2,(T-1)/2>, , <1/2,-T/2,(T-1)/2>, P61 } polygon{ 5 P14, <1/2,-T/2,(T-1)/2>, <1-T-m/2+T*m,-T+3*T*m/2,(T*m-m)/2>, <1-T,0,0>, P14 } polygon{ 5 P13, <1/2,T/2,(T-1)/2>, <1-T+3*T*m/2-m,T+(m-3*T*m)/2,-m/2>, <(1-T)/2,1/2,-T/2>, P13 } polygon{ 5 P36, , , <(1-T)/2,1/2,-T/2>, P36 } polygon{ 5 P61, <1/2,T/2,(T-1)/2>, , , P61 } polygon{ 5 P13, <(1-T)/2,1/2,-T/2>, <1-T+T*m-m,T+m-2*T*m,0>, <(1-T)/2,1/2,T/2>, P13 } polygon{ 5 P35, <0,1-T,0>, <(m-T*m)/2,1-T-m/2+T*m,T-3*T*m/2>, <(1-T)/2,1/2,T/2>, P35 } polygon{ 5 P36, <0,1-T,0>, <(m-T*m)/2,1-T-m/2+T*m,-T+3*T*m/2>, <(1-T)/2,1/2,-T/2>, P36 } polygon{ 5 P13, <(1-T)/2,1/2,T/2>, <1-T+3*T*m/2-m,T+(m-3*T*m)/2,m/2>, <1/2,T/2,(1-T)/2>, P13 } polygon{ 5 P35, <(1-T)/2,1/2,T/2>, , , P35 } polygon{ 5 P51, , , <1/2,T/2,(1-T)/2>, P51 } rotate k*x scale 3.} #declare Q1= <1/3,1/3,1/3>*q #declare Q2= <(1-T)/3,(2-T)/3,0>*q #declare Q3= <1/3,1/3,-1/3>*q #declare Q4= <(2-T)/3,0,(T-1)/3>*q #declare Q5= <(2-T)/3,0,(1-T)/3>*q #declare Q6= <(T-1)/3,(2-T)/3,0>*q #declare Q7= <-1/3,1/3,-1/3>*q #declare Q8= <(T-2)/3,0,(T-1)/3>*q #declare Q9= <(T-2)/3,0,(1-T)/3>*q #declare Q10= <-1/3,1/3,1/3>*q #declare Q11= <1/3,-1/3,-1/3>*q #declare Q12= <0,(T-1)/3,(T-2)/3>*q #declare Q13= <-1/3,-1/3,-1/3>*q #declare Q14= <(T-1)/3,(T-2)/3,0>*q #declare Q15= <(1-T)/3,(T-2)/3,0>*q #declare Q16= <0,(1-T)/3,(T-2)/3>*q #declare Q17= <1/3,-1/3,1/3>*q #declare Q18= <0,(1-T)/3,(2-T)/3>*q #declare Q19= <0,(T-1)/3,(2-T)/3>*q #declare Q20= <-1/3,-1/3,1/3>*q #declare star=union{ mesh { triangle {P13 P35 P51} triangle {P13 P35 Q1} triangle {P13 Q1 P51} triangle {Q1 P35 P51} } mesh { triangle {P13 P35 P36} triangle {P13 P35 Q2} triangle {P13 Q2 P36} triangle {Q2 P35 P36} } mesh { triangle {P13 P61 P36} triangle {P13 P61 Q3} triangle {P13 Q3 P36} triangle {Q3 P61 P36} } mesh { triangle {P13 P61 P14} triangle {P13 P61 Q4} triangle {P13 Q4 P14} triangle {Q4 P61 P14} } mesh { triangle {P13 P14 P51} triangle {P13 P14 Q5} triangle {P13 Q5 P51} triangle {Q5 P14 P51} } mesh { triangle {P23 P36 P35} triangle {P23 P36 Q6} triangle {P23 Q6 P35} triangle {Q6 P36 P35} } mesh { triangle {P23 P36 P62} triangle {P23 P36 Q7} triangle {P23 Q7 P62} triangle {Q7 P36 P62} } mesh { triangle {P23 P62 P24} triangle {P23 P62 Q8} triangle {P23 Q8 P24} triangle {Q8 P62 P24} } mesh { triangle {P23 P24 P52} triangle {P23 P24 Q9} triangle {P23 Q9 P52} triangle {Q9 P24 P52} } mesh { triangle {P23 P52 P35} triangle {P23 P52 Q10} triangle {P23 Q10 P35} triangle {Q10 P52 P35} } mesh { triangle {P46 P14 P61} triangle {P46 P14 Q11} triangle {P46 Q11 P61} triangle {Q11 P14 P61} } mesh { triangle {P46 P61 P62} triangle {P46 P61 Q12} triangle {P46 Q12 P62} triangle {Q12 P61 P62} } mesh { triangle {P46 P62 P24} triangle {P46 P62 Q13} triangle {P46 Q13 P24} triangle {Q13 P62 P24} } mesh { triangle {P46 P24 P45} triangle {P46 P24 Q14} triangle {P46 Q14 P45} triangle {Q14 P24 P45} } mesh { triangle {P46 P45 P14} triangle {P46 P45 Q15} triangle {P46 Q15 P14} triangle {Q15 P45 P14} } mesh { triangle {P61 P62 P36} triangle {P61 P62 Q16} triangle {P61 Q16 P36} triangle {Q16 P62 P36} } mesh { triangle {P14 P51 P45} triangle {P14 P51 Q17} triangle {P14 Q17 P45} triangle {Q17 P51 P45} } mesh { triangle {P51 P35 P52} triangle {P51 P35 Q18} triangle {P51 Q18 P52} triangle {Q18 P35 P52} } mesh { triangle {P51 P45 P52} triangle {P51 P45 Q19} triangle {P51 Q19 P52} triangle {Q19 P45 P52} } mesh { triangle {P52 P24 P45} triangle {P52 P24 Q20} triangle {P52 Q20 P45} triangle {Q20 P24 P45} } } object {pain texture{T_Copper_3C} } object {star texture{T_Copper_3C} rotate k*x}