[code]# Base construction: Hexagon and two squares[br]A = (0, 0)[br]B = (1, 0)[br][br]hex = Polygon(A, B, 6)[br]sq1 = Polygon(B, A, 4)[br]sq2 = Polygon(C, B, 4)[br][br]SetFilling(hex, 0)[br]SetFilling(sq1, 0)[br]SetFilling(sq2, 0)[br]#----------------[br][br]# Draw First Polygonal Shape (Kite)[br]pbAB = PerpendicularBisector(A, B)[br]pbBC = PerpendicularBisector(B, C)[br][br]Center = Intersect(pbAB, pbBC)[br][br]MPointAB = Midpoint(A, B)[br]MPointBC = Midpoint(B, C)[br][br]c1 = Circle(B, MPointAB)[br][br]angleBisector = Line(B, Center)[br][br]M = Intersect(angleBisector, c1, 2)[br][br]c2 = Circle(Center, M)[br]l1 = Line(A, C)[br]l2 = Line(H, I)[br][br]pbHB = PerpendicularBisector(H, B)[br][br]θ = Slider(1°, 90°, 0.5°, 1, 230)[br][br]l3 = Line(Rotate(Center, θ, M), M)[br][br]angleBisector2 = AngleBisector(MPointAB, Center, B)[br][br]I1 = Intersect(l3, pbAB)[br]I2 = Intersect(l3, angleBisector2)[br][br]l3' = Reflect(l3, angleBisector2)[br][br]I3 = Intersect(c2, pbAB, 1)[br]I4 = Reflect(I2, pbAB)[br][br]K1 = Polygon(I1, I2, I3, I4)[br]#----------------[br][br]# Draw Second Polygonal Shape[br]angleBisector3 = AngleBisector(A, B, Center)[br][br]l3'' = Reflect(l3', pbAB)[br][br]Z1 = Intersect(l1, l3'')[br][br]l3''' = Reflect(l3'', l1)[br][br]Z2 = Intersect(c1, angleBisector3, 2)[br]Z3 = Reflect(Z1, angleBisector3)[br]Z4 = Reflect(Z2, pbAB)[br]Z5 = Reflect(Z1, pbAB)[br][br]K2 = Polygon(Z1, Z2, Z3, Z4, Z5, I3)[br]#----------------[br][br]# Apply rotations[br]Lk = 0..11[br]Layer1 = Zip(Rotate(K1, pi/6 * k, Center), k, Lk)[br]Ln = 0..5[br]Layer2 = Zip(Rotate(K2, pi/3 * k, Center), k, Ln)[br]Layer3 = Zip(Rotate(Reflect(Layer1, l1), pi/3 * k, Center), k, Ln)[br][br]# Draw Third Polygonal Shape[br]# Inside bottom square[br]K3 = Reflect(K2, l)[br][br]l4 = Line(I3', Z5')[br]l5 = Segment(B, G)[br]K = Intersect(pbAB, pbHB)[br]l6 = AngleBisector(MPointAB, K, B)[br]X1 = Intersect(l4, l6)[br]l4' = Reflect(l4, l6)[br]X2 = Intersect(l4', l5)[br]K4 = Polyline(I3', X1, X2)[br][br]# Star[br]Layer4 = Zip(Rotate(K4, pi/4 * k, K), k, 0..7)[br]Layer5 = Zip(Rotate(K3, pi/2 * k, K), k, 0..3)[br][br][br]# Draw more[br][br]K5 = Rotate(K3, pi/2, B)[br]Z1'' = Rotate(Z1', pi/2, B)[br]Z3'' = Rotate(Z3', pi/2, B)[br]Z4'' = Rotate(Z4', pi/2, B)[br]Z5'' = Rotate(Z5', pi/2, B)[br][br]l7 =Line(Z4'',Z5'')[br]l8 = AngleBisector(Z4'', H, B)[br]l9 = Line(Z1'', Z4'')[br][br]Y1 = Intersect(l7, l8)[br]l7'' = Reflect(l7, l8)[br]Y2 = Intersect(l9, l7'')[br][br]l10 = AngleBisector(Y2, H, I)[br][br]W1 = Reflect(Y2, l10)[br]W2 = Reflect(Y1, l10)[br]W3= Reflect(Z4'', l10)[br]W4 = Reflect(Y1, l9)[br][br]K6 = Polygon(W1, W2, W3, W4)[br][br]Layer6 = Zip(Rotate(K6, pi/6 * k, H), k, 0..5)[br][br]Layer7 = Zip(Rotate(Layer4, pi/3 * k, Center), k, 0..5)[br][br]Layer8 = Zip(Rotate(Layer5, pi/3 * k, Center), k, 0..5)[br][br]Layer9 = Zip(Rotate(K5, pi/3 * k, Center), k, 0..5)[br][br]Layer10 = Zip(Rotate(Layer6, pi/6 * k, Center), k, 0..11)[br][br]Layer11 = Zip(Rotate(sq1, pi/3 * k, Center), k, 0..5)[br]SetFilling(Layer11, 0)[br][br]Layer12 = Polygon(G, H, 12)[br]SetFilling(Layer12, 0)[br][br][br]# Extra Settings[br]ListLinSegm = {"angleBisector", "angleBisector2", "angleBisector3", "l1", "l2", "l3", "l4", "l5", "l6", "l7", "l8", "l9", "l10", "l3'", "l3''", "l3'''", "l4'", "l7''", "pbAB", "pbBC", "pbHB"}[br]Execute(Zip("SetVisibleInView("+name+", 1, false)", name, ListLinSegm))[br]Delete(ListLinSegm)[br][br]ListPointsCircles = {"Center", "A", "B", "C", "D", "E", "F", "G", "H", "I", "I1", "I2", "I3", "I4", "I3'", "I3''", "J", "K", "L", "M", "MPointAB", "MPointBC", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W1", "W2", "W3", "W4", "X1", "X2", "Y1", "Y2", "Z1", "Z2", "Z3", "Z4", "Z5", "Z1'", "Z1''", "Z2'", "Z2''", "Z3'", "Z3''", "Z4'", "Z4''", "Z5'", "Z5''", "c1", "c2"}[br]Execute(Zip("SetVisibleInView("+name+", 1, false)", name, ListPointsCircles))[br]Delete(ListPointsCircles)[br][br][br]Execute(Zip("SetVisibleInView(K"+k+", 1, false)", k, 1..6))[br]Execute(Zip("SetVisibleInView(w"+k+", 1, false)", k, 1..4))[br]Execute(Zip("SetVisibleInView(i"+k+", 1, false)", k, 1..4))[br]Execute(Zip("SetVisibleInView(z"+k+", 1, false)", k, 1..5))[br][br]ListSeg = {"a", "q_1", "p_1", "n_1", "t_1", "s_1", "r_1"}[br]Execute(Zip("SetVisibleInView("+name+", 1, false)", name, ListSeg))[br]Delete(ListSeg)[br][br]CenterView(Center)[br]ShowGrid(false)[br]ShowAxes(false)[br][/code]