我想知道是否有人能够帮忙在Mathematica中绘制一个边长为n的等边三角形网格。谢谢。
我想知道是否有人能够帮忙在Mathematica中绘制一个边长为n的等边三角形网格。谢谢。
一个简单的网格:
p = Table[ Table[
Polygon[{j - 1/2 i, i Sqrt[3]/2} + # & /@ {{0, 0}, {1/2,Sqrt[3]/2}, {1, 0}}],
{j, i, 9}], {i, 0, 9}];
Graphics[{EdgeForm[Black], FaceForm[White], p}]
编辑
我猜这是一个更清晰的版本:
s3 = Sqrt[3];
templateTriangleVertex = {{0, 0}, {1, s3}, {2, 0}};
p = Table[Table[
Polygon[{2 j - i, s3 i } + # & /@ templateTriangleVertex],
{j, i, 9}], {i, 0, 9}];
Graphics[{EdgeForm[Black], FaceForm[White], p}]
像这样的内容吗?
(来源: yaroslavvb.com)
这是我使用的代码。也许对于上面的特定任务来说过于复杂,它是我用来可视化整数点格子的代码,就像这个。
A = Sqrt[2/3] {Cos[#], Sin[#], Sqrt[1/2]} & /@
Table[Pi/2 + 2 Pi/3 + 2 k Pi/3, {k, 0, 2}] // Transpose;
p2r[{x_, y_, z_}] := Most[A.{x, y, z}];
n = 10;
types = 1/n Permutations /@ IntegerPartitions[n, {3}, Range[1, n]] //
Flatten[#, 1] &;
points = p2r /@ types;
Needs["ComputationalGeometry`"]
Graphics[{EdgeForm[Black], FaceForm[Transparent],
GraphicsComplex[points,
Polygon /@ DelaunayTriangulation[points // N][[All, 2]]]}]
这段代码的作用
这是 belisarius 方法的一个变化。
p = Table[{2 j - i, Sqrt[3] i}, {i, 0, 9}, {j, i, 9}]
Graphics[ Line @ Join[p, Riffle @@@ Partition[p, 2, 1]] ]