#version 3.7; global_settings {assumed_gamma 1.0} background {rgb 1} camera {location <0,7.5,-10> look_at <0,0,0> right x*image_width/image_height} light_source {<0, 30, -30> color rgb 1} #include "colors.inc" #include "math.inc" // see the documentaion for possible patterns and types #declare TilingPattern = 4; #declare TileTypes = 1; // change to yes to write the color_map to a text file #declare WriteMap = no; // 0 = caulk off // 1 = caulk at every color // TileTypes = caulk at n TileTypes #declare CaulkAt = 1; #declare CaulkSize = 0.025; #declare CaulkColor = White*2; // scale required to fit core repeated tile into one unit square size #switch (TilingPattern) #case (1) #declare TileScale = <1,1,1>; #break #case (2 | 5) #declare TileScale = <2/3,1,1/sqrt(3)>; #break #case (3 | 4) #declare TileScale = <2/3,1,1/sqrt(3)>; #break #case (6 | 18) #declare TileScale = <1/4,1,1/4>; #break #case (7) #declare TileScale = <1/(sqrt(2)+1),1,1/(sqrt(2)+1)>; #break #case (8) #declare TileScale = <1,1,1/(sqrt(3)+2)>; #break #case (9) #declare TileScale = <1/2,1,1/(2*sqrt(3))>; #break #case (10) #declare TileScale = <1,1,1/2>; #break #case (11 | 12) #declare TileScale = <1/3,1,1/3>; #break #case (13 | 14) #declare TileScale = <1/(sqrt(3)+1),1,1/(sqrt(3)+1)>; #break #case (15) #declare TileScale = <1/5,1,1/5>; #break #case (16 | 17) #declare TileScale = <1/(sqrt(3)+3),1,1/((sqrt(3)+1.0)*2.0)>; #break #case (19 | 20) #declare TileScale = <1/2,1,1/((sqrt(3)/2)*3)>; #break #case (21) #declare TileScale = <1/(1+sqrt(3)),1,1/(1+sqrt(3))>; #break #case (22) #declare TileScale = <1/(2+sqrt(3)),1,1/(3+(2*sqrt(3)))>; #break #case (23 | 24) #declare TileScale = <1/(3+sqrt(3)),1,1/(3+(3*sqrt(3)))>; #break // Unit square scaling not possible with penrose tiling. // Scaling given useful to see all tiles in a way symmetrical in z #case (25 | 26 | 27) #declare TileScale = <1/(4*sqrt(2)),1,1/(4*sqrt(2))>; #break #else #declare TileScale = <1,1,1>; #end #declare ColorArray = array[12]{ Red, White, Green, Yellow, Blue, Cyan, IndianRed, Pink, DarkGreen, Turquoise Violet, BlueViolet }; #if (WriteMap) #fopen MapFile "tilemap.txt" write #write (MapFile, "texture {\n pigment {\n tiling ",TilingPattern, "\n color_map {\n") #end plane{y,0 pigment { White*0.75 } } #declare TestCase = box {<0,0,0>, <1,0.1,1> texture{ pigment{ tiling TilingPattern color_map{ #declare V=0; #declare V2 = 0; #while(V]\n") #write (MapFile, " [", str((V2+incre)/TileTypes,5,4)," rgb <", vstr(3, ThisColor,", ", 0,4),">]\n") #end #declare V = V + 1; #declare V2 = V2 + incre; #end } } scale TileScale } scale <5,1,5> } #local YDir = 0; #while (YDir < 360) object {TestCase rotate y*YDir} #declare YDir = YDir + 90; #end #if (WriteMap) #write (MapFile, " }\n }\n}\n") #fclose MapFile #end