Toán học, 237 byte
n={-1,1}#&;c_~g~s_:=Polygon[c+s#&/@{k={12,9},m=n@k,t={0,-12}}];p={#,#2~g~1,#3~g~-1}&;a=p[Cyan,#-k,#+m]&;b=p[Blue,#-t,#+k]&;c=p[Red,#-m,#+t]&;Graphics@{{a@#,b@#,c@#}&/@{j=4k,s=4{4,9},n@s,4m,r={-32,8},q=-4{4,5},4t,n@q,n@r},a@j,b@s,c@j,c@s}
Phiên bản dễ đọc hơn:
1 n = {-1, 1} # &;
2 c_~g~s_ := Polygon[c + s # & /@ {k = {12, 9}, m = n@k, t = {0, -12}}];
3 p = {#, #2~g~1, #3~g~-1} &;
4 a = p[Cyan, # - k, # + m] &;
5 b = p[Blue, # - t, # + k] &;
6 c = p[Red, # - m, # + t] &;
7 Graphics@{
8 {a@#, b@#, c@#} & /@
9 {j = 4 k, s = 4{4, 9}, n@s, 4 m, r = {-32, 8},
10 q = -4{4, 5}, 4 t, n@q, n@r},
11 a@j, b@s, c@j, c@s}
Dòng 1 định nghĩa một hàm n
phủ định tọa độ đầu tiên của một cặp theo thứ tự. Dòng 2 định nghĩa một hàm g
tạo ra một tam giác đều (đại khái) có tâm tại điểm c
và chỉ xuống hoặc hướng lên tùy thuộc vào việc s
có 1
hay không -1
. Dòng 3 định nghĩa p
là một mẫu hình bình hành bao gồm một màu và hai hình tam giác, và dòng 4-6 xác định a
, b
và c
trở thành ba loại cụ thể khác nhau của hình bình hành mà xuất hiện trong khối.
Dòng 8 định nghĩa một hàm {a@#, b@#, c@#}&
vẽ toàn bộ khối lập phương tại điểm #
; dòng 9 và 10 áp dụng điều đó cho chín điểm cần thiết để tạo ra tam giác lớn hơn. Điều này tạo ra chín khối, bắt đầu ở phía trên bên phải và đi ngược chiều kim đồng hồ, trong đó những cái sau bao phủ các phần của những cái trước đó. Cuối cùng, dòng 11 vẽ lại bốn hình bình hành (ở phía trên bên phải của hình ảnh) để cuối cùng chúng bao phủ các hình khối sau như chúng được yêu cầu. Đầu ra dưới đây: