/* Hexagonal weave render * Chris Lu, 2009 */ #include "colors.inc" camera { orthographic location <0, 0, -30.1> look_at 0 } #declare W = 1; /* change SIZE to 2.5 to show separate pieces */ #declare SIZE = 3; #declare SPACING = 6; #declare tri = polygon { 10, , , <-W/2, W * sqrt(3)/6 + SIZE> <-W/2, W * sqrt(3)/6>, <-W/2 - SIZE * sqrt(3)/2, W * sqrt(3)/6 - SIZE/2>, <-SIZE * sqrt(3)/2, -W * sqrt(3)/3 - SIZE/2> <0, -W * sqrt(3)/3>, , , } #declare i = -5; #declare strip = union { #while (i <= 5) object { tri translate i * sqrt(3) * SPACING * x } object { tri rotate 180 * z translate } #declare i = i + 1; #end } #declare i = -5; #declare hex_net = union { #while (i <= 5) object { strip translate i * SPACING * 3 * y } object { strip translate } #declare i = i + 1; #end } object { hex_net finish { ambient 1.0 diffuse 0.0 specular 0.0 } pigment { Red } } object { hex_net translate finish { ambient 1.0 diffuse 0.0 specular 0.0 } pigment { Green } } object { hex_net translate finish { ambient 1.0 diffuse 0.0 specular 0.0 } pigment { Blue } }