六角形ラティスを表現するための最良の方法です:2次元配列または表現するものは何でも我々は六角形ラティス持っ
答えて
最も簡単な方法でそれを表現するための最良の方法は何
_ _ _
/\_/ \_/ \_
\_/ \_/ \_/ \
/\_/ \_/ \_/
\_/ \_/ \_/
を2次元配列を持つ16進グリッドは、あなたの軸を斜めにすることです:各ヘクスの行は、前のものより半ステップほどオフセットされています。一貫している限り、各行が前後にオフセットされているかどうかは関係ありません。以下、各連続する行は半ヘクス前方にオフセットされている:
(0,0) (0,1) (0,2) (0,3) (0,4)
(1,0) (1,1) (1,2) (1,3) (1,4)
(2,0) (2,1) (2,2) (2,3) (2,4)
(3,0) (3,1) (3,2) (3,3) (3,4)
任意の所与ヘクスの最近傍を決定することは容易である:場合には、上記所与のアレイアドレス(r,s)
ために、次のものが:
(r-1, s)
(r-1, s+1)
(r, s-1)
(r, s+1)
(r+1, s-1)
(r+1, s)
は、位置の描画が簡単であることに注意:
x= dx * (s + 0.5*r)
y= dy * r
012:ヘクス上記
(r,s)
の中心が画面の位置にあります
これに代わる方法として、交互の行を半角で半分オフセットする方法があります。これにより、指定された配列に対してより矩形の形状が得られますが、描画位置と最近傍を決定するには、それぞれ偶数行と奇数行の2つの場合が必要になります。
OPは多くを望んでいるので、私は私のお気に入りのあいまいな六角インデックスシステムへのリンクを追加します
...あり、他の座標系が利用可能であるが、彼らはあまり便利で、よりあいまいです:aは"spiral honeycomb mosaic"。これは、以下のように(BASE-10をない、それはベース-7にラベル付けされていることに注意)、インデックスにベース-7システムを使用して、六角場所の連続し、より大きな「スーパー・六角」グループ:
7 elements: 49 elements:
2 3
22 23
1 0 4 -->
12 13 21 20 24
6 5
11 10 14 26 25 32 33
16 15 02 03 31 30 34 --> [3 base-7 digits
-> 343 elements...]
62 63 01 00 04 36 35
61 60 64 06 05 42 43
66 65 52 53 41 40 44
51 50 54 46 45
56 55
リンクをしていますこの座標系を扱うためのいくつかのコードですが、実際には評価しようとしていません。
あなたの解は答えに表示されている格子を実際に表していません - それは90度回転しています。疑問の格子は直接水平な隣人を持っていませんが、垂直なものを持っています。 –
@andrewコック:本当ですか?今日はちょっと気分が悪いと感じていますか? :-)おそらくアスキーで絵を描く方が簡単でした。 1つは確かにrとsの役割を交換して、画像を反転することができます... – phkahler
私はr =行とs =歪んだ列と思っていました。とにかくCスタイルの配列規則は普通は[行] [列]です。もちろん、phkahlerが言うように、あなたは好きなように描画することができます。 – comingstorm
2行は2行= 1桁の高さ、1列= 1六角幅を使用すると問題ありません。
4,1,5,2,6,3
4,7,5,8,6,9
A,7,B,8,C,9
A,D,B,E,C,F
- 番号のすべてのペアは、1枚の六角タイルです。
- 12と6時を見つけるY + 1が同じタイル
-
であれば、あなたの異なるタイル上
- は2と4時に
- チェックを見つけるまでちょうど+ -Yであります
- の場合2時はX + 1 & 4時はX + 1、Y + 1
- 2時はX + 1、Y-1 & 4時00分です。クロックはX + 1
- は2と4時に
ありがとう!それは非常に珍しいです! – Eugeny89
このパターンについて考えるもう一つの方法は、正方格子を取り、パリティに基づいて座標の半分を落とすことです(例えば、 'x + y'が偶数になるように'(x、y) 'を受け入れるだけです)。もちろん、配列のエントリの半分を無駄にしたくないので、上の@ LastCoderの配列を使用します。 – comingstorm
- 1. 六角形のパンコントロール
- 2. 六角形のProgressBar
- 3. SQL:CASEは、我々が持っている
- 4. 我々は角2プロジェクト
- 5. カスタム我々が持っているフィルタ
- 6. 正方形のXYグリッド六角形の頂点からの六角ラベル
- 7. 我々はまた、我々は、ユーザーが磁気がインストールの我々は3つのインスタンスを持つ
- 8. は、我々はまだ我々が
- 9. 六角形にグロー効果を追加
- 10. CSS3アニメーション六角形のバブル効果
- 11. 非空白の六角形のヘックスビンセンター
- 12. 六角形(ビン)画像のニューラルネットワーク?
- 13. 六角形の行列ポリゴンですか?
- 14. 六角形タイルをズームインするjavascript
- 15. 内部テキストのあるHTML六角形
- 16. 六角形のグループの概要
- 17. vb.netでの六角形の描画
- 18. タイルマップされた六角形の座標
- 19. タイル張りの平たい六角形
- 20. タイルグラム/六角形の描画方法R
- 21. 六角形のインデックスを回転する
- 22. 2Dの六角形のビンでビンカウント
- 23. ピカソで六角形の画像変換
- 24. 六角形が表示されない
- 25. AndroidのGoogleマップの六角形
- 26. geom_hexを使って六角形に変数をマッピングする
- 27. Python dxfwriteを使って六角形を描く方法
- 28. は、我々は彼らの私が持っている
- 29. は、我々は以下の持っていると言うコンパイル
- 30. 、国境を六角形にしますが、私は国境を持つ六角形の形状を作りたい
あなたは、ノードまたは分野に興味はありますか? –
あなたは何を表現しようとしていますか?無限の格子?長方形の有限格子?頂点に関するデータ?エッジのデータ? –
[斜め六角](http://ferkeltongs.livejournal.com/31455.html)と[Amitのグリッドに関する考え方](http://www-cs-students.stanford.edu/~amitp/game-programming)を参照してください。/grids /) –