Mathematica, 237 octets
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}
Version plus facile à lire:
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}
La ligne 1 définit une fonction n
qui nie la première coordonnée d'une paire ordonnée. Ligne 2 définit une fonction g
qui produit un (ou moins) triangle équilatéral centré au niveau du point c
, et pointant vers le bas ou vers le haut selon que s
est 1
ou -1
. Ligne 3 définit p
d'être un modèle de parallélogramme constitué par une couleur et deux triangles, et les lignes 4-6 de définir a
, b
et c
comme les trois différents types de parallélogrammes spécifiques qui apparaissent dans les cubes.
La ligne 8 définit une fonction {a@#, b@#, c@#}&
qui dessine un cube entier centré au point #
; les lignes 9 et 10 appliquent cela aux neuf points nécessaires pour former le grand triangle. Cela produit neuf cubes, commençant en haut à droite et dans le sens inverse des aiguilles d'une montre, où les derniers recouvrent des parties des précédents. Enfin, la ligne 11 redessine quatre parallélogrammes (dans le coin supérieur droit de l’image) afin qu’ils recouvrent les derniers cubes comme il se doit. La sortie est ci-dessous: