#version unofficial megapov 0.6; #declare S=.5; /* base size */ #declare S2=S/2; #declare S4=S/4; #declare D=S*sqrt(2); #declare D2=D/2; #declare H=S*sqrt(3)/2; #declare RepeatSqrX=3*S+2*H; #declare RepeatSqrY=S+2*H; #declare FunMod=function{y*((x/y)-floor(x/y))} //sqr #declare FunSqr1=function{1-min(1,max(abs(x/S2),abs(y/S2)))} #declare FunSqr2=function{FunSqr1(FunMod(x+S2,RepeatSqrX,0)-S2,y,0)} #declare FunSqr3=function{FunSqr2(x,FunMod(y+S2,RepeatSqrY,0)-S2,0)} #declare FunSqr4=function{pigment{ function{FunSqr3(x,y,0)} translate rotate z*60 translate S2 }} #declare FunSqr5=function{pigment{ function{FunSqr3(x,y,0)} translate rotate -z*60 translate }} #declare FunSqr6=function{FunSqr3(x+H+3*S2,y-(H+S2),0)} #declare FunSqr7=function{FunSqr4(x-(H+3*S2),y-(H+S2),0)} #declare FunSqr8=function{FunSqr5(x+H+3*S2,y-(H+S2),0)} #declare FunSqr=function{FunSqr3+FunSqr4+FunSqr5+FunSqr6+FunSqr7+FunSqr8} //tri #declare FunTri1=function{1-max(0,min(x,S4))/S4} #declare FunTri2=function{pigment{ function FunTri1(x,y,0) rotate z*120 }} #declare FunTri3=function{pigment{ function FunTri1(x,y,0) rotate -z*120 }} #declare FunTri4=function{min(FunTri1,min(FunTri2,FunTri3))} #declare FunTri5=function{FunTri4(x+3*S4,y,0)} #declare FunTri6=function{FunTri5(x,y,z)+FunTri5(-x,y,z)} #declare FunTri7=function{FunTri6(FunMod(x+2*S,RepeatSqrX,0)-2*S,y,0)} #declare FunTri8=function{FunTri7(x,FunMod(y+2*S,RepeatSqrY,0)-2*S,0)} #declare FunTri9=function{FunTri8(x-(H+3*S2),y-(H+S2),0)} #declare FunTri=function{FunTri8+FunTri9} //six #declare FunSix1=function{1-max(0,min(y,3*S4))/(3*S4)} #declare FunSix2=function{pigment{ function FunSix1(x,y,0) rotate z*60 }} #declare FunSix3=function{pigment{ function FunSix1(x,y,0) rotate z*120 }} #declare FunSix4=function{pigment{ function FunSix1(x,y,0) rotate z*180 }} #declare FunSix5=function{pigment{ function FunSix1(x,y,0) rotate z*240 }} #declare FunSix6=function{pigment{ function FunSix1(x,y,0) rotate z*300 }} #declare FunSix7=function{min(FunSix1,min(FunSix2,min(FunSix3, min(FunSix4,min(FunSix5,FunSix6)))))} #declare FunSix8=function{FunSix7(FunMod(x+2*S,RepeatSqrX,0)-2*S,y,0)} #declare FunSix9=function{FunSix8(x,FunMod(y+2*S,RepeatSqrY,0)-2*S,0)} #declare FunSix=function{FunSix9(x,y,0)+FunSix9(x-(H+3*S2),y-(H+S2),0)} #declare UseFun=function{FunTri+FunSqr+FunSix(x,y+S2+H,0)} background{color rgb 0} plane{z 10 pigment{function{UseFun}}} light_source{1 1}