Mathematica, 237 bayt
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}
Daha kolay okunur sürüm:
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}
Satır 1, n
sipariş edilen bir çiftin ilk koordinatını geçersiz kılan bir işlevi tanımlar . Hat 2 tanımlayan bir işlev g
noktasında merkezlenmiş bir (kabaca) eşkenar üçgen oluşturur c
ve yere veya olmamasına bağlı olarak yukarı s
bir 1
ya da -1
. Satır 3 tanımlar p
tanımlar 4-6 renk ve iki üçgen ve hatlardan oluşan bir paralelkenar şablonu olduğu a
, b
ve c
küpler görünür paralel kenar üç farklı özel tipleri için.
Satır 8 {a@#, b@#, c@#}&
, noktada merkezlenmiş bir küpün tamamını çizen bir işlevi tanımlar #
; 9. ve 10. satırlar bunu daha büyük üçgeni yapmak için gereken dokuz noktaya uygular. Bu, sağ üstte başlayan ve saat yönünün tersine ilerleyen dokuz küp üretir, burada daha sonrakilerin önceki bölümleri kapsar. Son olarak, çizgi 11, dört paralelkenar (resmin sağ üst köşesinde) yeniden çizer, böylece olması gerektiği gibi daha sonraki küpleri kaplarlar. Çıktı aşağıdadır: