2011-01-24 16 views

答えて

4

単純に接続するすべての三角形を見つけ、xy平面内にそれらの3タプルを回転させる線形変換である

  • R^3の2次元部分空間上に存在しますグリッド:

    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}] 
    
  • +0

    ありがとうございました。これははるかに簡単です。しかし視覚的に気づいてください、このグリッドはヤロスラフが描いたものと同じではありません。あなたはそれを修正する理由と方法を知っていますか? –

    +0

    @QiangはAspectRatio-> 1を削除するだけです(表示上の問題です)。私は私の答え –

    +0

    を更新しました。あなたのものはとてもシンプルで、私の質問に対する答えとして選ばれました!ありがとう! –

    4

    このようなものはありますか?

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

    これは私が使用したコードです。おそらく、あまりにも上記の特定のタスクのために複雑な、それは私はこれが

    1. 種類がnまで追加の整数のすべての3つのタプルが含まれている何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]]]}] 
      

      のような整数格子を視覚化しなければならなかったコードの一部です。これらの整数は、Aは、

    2. ドロネー図近く点
    +0

    ちょっと説明していただけますか? –

    1

    はベリサリウスメソッドのバリエーションです。

    p = Table[{2 j - i, Sqrt[3] i}, {i, 0, 9}, {j, i, 9}] 
    
    Graphics[ Line @ Join[p, Riffle @@@ Partition[p, 2, 1]] ] 
    
    +0

    @belisariusところで、あなたは分かりやすくするためにダブルテーブルフォームを好んでいますか? –

    +0

    @userでメッセージを開始するのは、ユーザーが回答のコメントスレッドに参加していた場合、またはコメントしている回答を投稿した場合にのみ有効です。彼がしなかった場合、彼はあなたのメッセージを警告されず、おそらくそれを全く読まないでしょう。私は過去の答えを閲覧するだけです。あなたの質問に答える、時には私に合ったときに_私はOP(オリジナルのポスター)について理解しやすいと思うようにコードを書くことにしました。これはいつも自分のために書く方法ではありません。おそらく最も顕著な例外は、パフォーマンスの問題を解決しようとするときです。 –

    +0

    さらに、私の答えでQiangのコメントの最後を読んだら、何度もシンプルさがOPの本当の価値だと思うでしょう。私が質問を書くと、私は何かを研究して答えが私に考えのための食糧を与えない限り、理解するのに時間がかかりますよりも、より単純で理解しやすい答えをより価値があるでしょう。 –

    関連する問題