Mathematica
レベル1には、平面をタイル表示するために繰り返しスタンプされる基本的なタイルテンプレートが含まれています。
レベル2はタイリングを行います。
まだ達成できていないタイルが2つあります。回転だけでなく移動も必要と思われます。
レベル1:頂点図(559バイト)
nGon[n_]:=
{ColorData[46,"ColorList"][[n]],Polygon@Switch[n,
3,{{0,0},{-1/2,.866},{-1,0},{0,0}},
4,{{0,0},{0,1},{-1,1},{-1,0},{0,0}},
6,Table[{Cos[i 2Pi/n],Sin[i 2Pi/n]}+{-.5,.866},{i,0,n}],
8,Table[1.31{Cos[i Pi/4],Sin[i Pi/4]}+{-0.5`,1.207},{i,1/2,9}],
_,Table[2{Cos[i 2Pi/n],Sin[i 2Pi/n]}+{-0.5176,1.932},{i,1/2,13}]]}
innerAngle[n_]:=180-360/n
g[{}]=0;
g[a_]:=-(Plus@@innerAngle/@a)
h[{{},__,out_}]:=out
h[{list_,angles_,out_}]:=(
z=GeometricTransformation[nGon[l=list[[1]]],RotationTransform[g[angles] Degree]];
h[{Rest@list,Append[angles,l],Append[out,z]}])
テスト中
Row[Graphics[{EdgeForm[{Blue}], #},
ImageSize -> 70] & @@ {h[{#, {}, {}}]} & /@ {{3, 3, 3, 3, 3,
3}, {3, 3, 3, 3, 6}, {3, 3, 3, 4, 4}, {3, 3, 4, 3, 4}, {3, 12,
12}, {3, 4, 6, 4}, {3, 6, 3, 6}, {4, 4, 4, 4}, {4, 6, 12}, {4, 8,
8}, {6, 6, 6}}]
レベル2:タイル(690バイト追加)
ルールは、各構成のタイルオフセットとインデントを返します。
r
タイルを出力する基本関数です。
p
テンプレートとそれぞれのタイルを示します。空白は、テンプレートでカバーされていないものに対応します。
rules={
{3,6,3,6}-> {2,3.47,0,0},
{4,4,4,4}-> {1,1,0,0},
{6,6,6}-> {3,2.6,1.5,0},
{3,3,3,3,3,3}-> {1.5,1.74,0,.9},
{3,3,3,3,6}-> {2,2.6,-0.4,1.8},
{4,6,12}->{4.2,4.9,0,2.5},
{3,3,4,3,4}-> {1.87,1.86,-.5,-0.5},
{4,8,8}-> {3.4,3.4,0,0},
{3,3,3,4,4}-> {2,1.87,.52,0},
{3,12,12}-> {3.82,6.73,0,0},
{3,4,6,4}-> {1.4,4.3,0(*1.375*)-1,-2.4}};
r[nGons_]:=
Module[{horizHop,vertHop,indent,downIndent},
{horizHop,vertHop,indent,downIndent}=(nGons/.rules);
Graphics[{EdgeForm[{Blue}],Table[GeometricTransformation[h[{#,{},{}}]&/@{nGons},
TranslationTransform[{
If[MemberQ[{{3,3,4,3,4},{3,3,3,3,6},{3,4,6,4}},nGons],indent *row,indent Boole[OddQ[row]]]+col horizHop,
If[MemberQ[{{3,3,4,3,4},{3,3,3,3,6},{3,4,6,4}},nGons],downIndent *col,downIndent Boole[OddQ[col]]]-row vertHop}]],
{col,0,5},{row,0,4}]},ImageSize-> 250]]
p[nGon_]:=Row[{Graphics[{EdgeForm[{Blue}],h[{nGon,{},{}}]},ImageSize->70],r@nGon}];
テスト中
三角形のタイル
p[{3, 3, 3, 3, 3, 3}]
六角
p[{6, 6, 6}]
平方
p[{4, 4, 4, 4}]
わからない
p[{3, 3, 4, 3, 4}]
切り捨てられた正方形
p[{4, 8, 8}]
三角形
p[{3, 6, 3, 6}]
切頭六角形
p[{3, 12, 12}]
名前のない
p[{3, 3, 3, 3, 6}]
細長い三角形
p[{3, 3, 3, 4, 4}]
把握するためのタイル
3.3.3.4.4
3.3.4.4.3
3.4.4.3.3
4.4.3.3.3
4.3.3.3.4
。すべてのシノニムをサポートする必要がありますか、それとも語彙的に最も低いシノニムのみをサポートする必要がありますか(質問で示したとおり)。また、3.3.3.3.6
2つの鏡像形式で存在します。どちらでもよいことを理解しています。