Как нарисовать треугольную сетку длины n в Mathematica - PullRequest
3 голосов
/ 25 января 2011

Мне интересно, может ли кто-нибудь помочь нарисовать треугольную сетку (равностороннюю) с длиной ребра n в Mathematica.Спасибо.

Ответы [ 3 ]

4 голосов
/ 25 января 2011

Простая сетка:

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}]  

Triangular Grid

Редактировать

Более понятная версия, яугадайте:

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}]
4 голосов
/ 25 января 2011

Как то так?

http://yaroslavvb.com/upload/save/triangular-grid.png

Это код, который я использовал. Возможно, это слишком сложно для конкретной задачи выше, это часть кода, которую мне пришлось визуализировать целочисленными решетками, такими как this

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]]]}]

Что это делает

  1. types содержит все 3 набора целых чисел, которые складываются в n. Эти целые числа лежат в 2-мерном подпространстве R ^ 3
  2. A - линейное преобразование для поворота этих трех кортежей в плоскость x-y
  3. Триангуляция Делоне находит все треугольники, соединяющие близлежащие точки
1 голос
/ 16 февраля 2011

Вот вариант метода Велисария.

p = Table[{2 j - i, Sqrt[3] i}, {i, 0, 9}, {j, i, 9}]

Graphics[ Line @ Join[p, Riffle @@@ Partition[p, 2, 1]] ]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...