Mathematica、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
、色と2つの三角形で構成される平行四辺形のテンプレートであると定義し、4〜6行目は、a
、b
およびc
キューブに表示される平行四辺形の三つの異なる特定のタイプであること。
行8は{a@#, b@#, c@#}&
、ポイントを中心とした立方体全体を描く関数を定義しています#
。9行目と10行目は、大きな三角形を作成するのに必要な9つのポイントにそれを適用します。これにより、右上から反時計回りに9個のキューブが生成され、後のキューブが前のキューブの一部を覆います。最後に、11行目は4つの平行四辺形(図の右上)を再描画し、後のキューブを想定どおりに覆うようにします。出力は次のとおりです。