Математика, 237 байт
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}
Простіша для читання версія:
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}
Рядок 1 визначає функцію, n
яка заперечує першу координату впорядкованої пари. Рядок 2 визначає функцію, g
яка виробляє (приблизно) рівносторонній трикутник, центрований у точці c
, і спрямований вниз або вгору залежно від того, s
є 1
чи -1
. Рядок 3 визначає p
як шаблон паралелограм , що складається з квітів і двох трикутників і ліній 4-6 визначають a
, b
і c
бути три різних типи конкретних паралелограмів , які з'являються в кубах.
Рядок 8 визначає функцію, {a@#, b@#, c@#}&
яка малює цілий куб із центром у точці #
; рядки 9 і 10 застосовують це до дев'яти точок, необхідних для складання більшого трикутника. При цьому виходить дев'ять кубів, починаючи з правого верхнього кута і йдучи проти годинникової стрілки, де пізніші прикривають частини попередніх. Нарешті, рядок 11 перемальовує чотири паралелограми (у верхньому правому куті малюнка), щоб вони вкривали пізніші кубики так, як вони повинні. Вихід нижче: