問題タブ [hexagonal-tiles]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Python で三角形/六角形のグリッドを保存する最良の方法
私は六角形のタイルでゲームを作っていますが、三角形/六角形のグリッドを使用することにしました。座標を生成するのに役立つこの質問を見つけ、コードをわずかに変更して、すべての座標を「。」の値を持つディクショナリにキーとして保存しました。(床) または "X" (壁) であり、空白以外の各文字が六角形のタイルを表すマップの文字列表現を出力する関数が含まれていました。これは新しいコードです:
このコードを使用すると、次のように半径内のすべての座標を生成できます。
次のような座標にアクセスします。
これは今のところ問題なく動作しているように見えますが、この方法でマップを保存することにはいくつかの欠点があるに違いないと確信しています。欠点がある場合は、それらを指摘してください。また、マップを保存するためのより良い方法を提示してください。お時間をいただきありがとうございます。
javascript - 現在の Web 技術を使用して、六角形のインタラクティブなマップを生成するにはどうすればよいですか
特にゲームを作成するために、html5/現在の Web 技術を学びたいです。
最初は、六角形のタイルで構成されたトップダウンの 2D マップを生成できるようにしたいと考えています。
これらのタイルは、通常の環境タイル (草、平野、雪、湖、海など) でランダムに生成されます。
ズームイン/アウトできるようにしたい。
後で、プレイヤー/AI やタイル上のアセットなどを表すアバターを作成したいと思います...
基本を学ぶのに適した出発点はどこにありますか?
r - Spatstat を使用した六方格子の生成
特定の粒子の成長パターンを分析しており、その点パターンを、同じ強度 (単位面積あたりの点数が同じ) の完全な六方格子のパターンと比較したいと考えています。これを行う関数を作成しましたが、固有のエラーがあり、どこから発生したのかわかりません。基本的に、関数がコースを実行した後、正確な数の粒子を持たない完全な六角形の点パターンが生成されます。通常、約 1 ~ 4% ずれています。次のコードをコピーして R に貼り付けると、次のことがわかります。この特定の例では、誤差は 11.25% です。元の点パターンには 71 個の粒子があり、生成された完全な六角形の点パターンには 80 個の粒子があります。これは非常に奇妙に思えます。
以下は、六方格子を生成するために私が書いた関数のコードです。
現在、私は R に比較的慣れていないため、このエラーの原因となったコードのどこかで構文エラーが発生している可能性があります。あるいは、このプロセスの思考回路に何らかの誤りがあるのかもしれません。しかし、私の結果は私が試みてきたものに非常に近いので、その可能性は低いと思います (ほとんどの場合、わずか 1 ~ 4% の誤差で十分です)。
要約すると、私が助けてほしいのは、ポイント パターンを取得し、同じウィンドウ サイズの別のポイント パターンを同じ数の粒子で作成する方法ですが、完全に六角形のポイント パターンです。
ご不明な点がございましたら、お気軽にお問い合わせください。
ありがとう!
hexagonal-tiles - 五角形のない球上の六角形グリッド
球体にタイルベースの世界を作りたかったのです。六角形のタイルを使用したいと思いますが、私が理解できる限り、それに合うように五角形もそこに入れる必要があります。
だから、私の質問は、五角形を使用せずに球上に六角形のグリッドを作成することは可能ですか?六角形がすべて正六角形に近い場合は、正六角形である必要はありません。
c# - 切頂二十面体タイル オブジェクト
私は切頭二十面体を作ろうとしていますが、より多くの細分(より多くの六角形)
があります。私が使用するゲームでは、五角形と六角形はそれぞれ別のオブジェクトです。したがって、正二十面体を生成した後、生成された点を使用して、五角形または六角形をその上に配置します (各三角形の中間を検索する代わりに、これらを別のオブジェクトにする必要があるため、これを行います)。とにかく.)私はそれについていくつか質問があります.Googleは本当に役に立ちません.
どうぞ:
- 各辺の長さが等しいという保証はありますか?
- 各ヘキサ/ペタゴンは個別のオブジェクトであるため、それらを回転させて適切に配置する必要があります。
- 半径 1 の六角形または五角形があると仮定すると、それらを中央にどれくらい配置する必要がありますか? (基本的に、六角形/五角形の半径と切頭二十面体の半径との関係はどうなっていますか。)
これが私の最初のテストです。正二十面体を生成し、各点に五角形のモデルを配置しました。これを回転させて、中央から離れるようにします。ご覧のとおり、それらはまだ一緒に収まるように回転する必要があり (質問 2)、中央までの距離も微調整する必要があります (質問 3)。
私もこれに取り組み続けますが、すべての助けに感謝します! (Unityでc#を使って作っているので、サンプルコードを出してくれると本当にすごいです。)
どうもありがとう!
collision-detection - 2D 六角形グリッドでの衝突検出
Cocos2D を使用して、カジュアルなグリッド ベースの 2D iPhone ゲームを作成しています。グリッドは、均一なサイズと間隔で配置されたディスクで構成される「ずらした」六角形のグリッドです。こんな感じです。
グリッドを 2D 配列に格納しました。また、グリッドセルを「囲む」という概念もあります。つまり、特定のセルを囲む 6 つのグリッド セルです (6 つ未満のセルを持つことができる境界上のグリッド セルを除く)。
とにかく、衝突検出をテストしていますが、計画どおりに機能していません。静止しているディスクのグループに近づいている移動ディスクの衝突検出を現在どのように行っているかを次に示します。
- 移動セルの xy 位置を使用して、移動セルに最も近いグリッド セルの ij 座標を計算します。
- ij 座標を使用して周囲のグリッド セルのリストを取得する
- 周囲の細胞を調べます。それらがすべて空の場合、衝突はありません
- 空でない周囲のセルがいくつかある場合は、ディスクの中心間の距離を衝突に必要な最小距離と比較します
- 衝突が発生した場合は、移動ディスクをグリッド セル ij に配置します。
したがって、これは機能しますが、あまりうまくいきません。ゲーム ループの各ステップで、移動するディスクと静止しているすべてのディスクを比較するだけの、より単純なブルート フォース アプローチを検討しました。静止ディスク数が最大 300 であるため、これはおそらくパフォーマンスの観点から実現可能です。そうでない場合は、スペース分割データ構造を使用できますが、複雑すぎると感じます。
このようなゲームで衝突を検出するための一般的なアプローチとベスト プラクティスは何ですか?
javascript - 六角形のエッジ上のオブジェクトのモデル配置
ギャップのない六角形のフィールドがあります(例:http://www.imec.be/ScientificReport/SR2007/html/afbeeldingen/SR030F1.jpg)
1つの六角形はクラスで表されHexagon
ます。
私の問題は、六角形の角と端に特定のオブジェクトを「配置」したいということです。明らかに、(たとえば)六角形の上端に配置するには、隣接する六角形の下端にも配置する必要があります。
しかし、異なる視点から同じ位置を表す複数の配置を処理したくありません。
あなたはそれをするためのより良い方法を知っていますか?
前もって感謝します!
レオ
r - ggplot2 stat_binhex(): プロット サイズを変更しながらビンの半径を維持する
Binwidth パラメータを手動で調整せずに ggplot2 で hexbin プロットのサイズを変更するときに、正六角形 (すべての辺の長さが等しい) を維持する方法を見つけたいと思います。
説明する:
少なくとも目には規則的に見える六角形が得られます。
と
不規則な六角形を生成します。
ドキュメントでは、binwidth = c(1, 1000)
ビンの幅を指定する binwidth パラメータ (例: ) について説明しています。任意のプロット サイズを指定すると、正六角形を作成するための適切なビン幅設定を返す関数が必要です。
r - ggplot2 1つの画像に異なるカラーグラデーションを使用した複数のstat_binhex()プロット
ggplot2のstat_binhex()を使用して、同じチャートに2つの独立変数を同時にプロットし、それぞれがscale_colour_gradientn()を使用して独自のカラーグラデーションを使用したいと思います。
x軸の単位が一致しないという事実を無視すると、再現可能な例は、別々の塗りつぶし勾配を維持しながら、同じ画像に以下をプロットすることです。
ここでggplot2googleグループに関連する問題の会話を見つけました。
algorithm - 任意の数のポリゴンを組み合わせる
ランダムに配置された任意の数のポリゴン(この場合はヘクス)がありますが、それらはすべて別のヘクスに接触しています。
個々のヘクスには6つのx、y頂点があります。頂点はすべてのヘクスで知られています。
誰かが私を、すべてのヘクスを1つのポリゴンに結合するアルゴリズムの方向に向けることができますか?基本的に、私は、ある頂点から次の頂点に線を引くときにポリゴンを形成するように順序付けられた頂点位置の配列を吐き出す関数を探しています。
これはこれまでの私の方法です:
- すべてのヘクスのすべての頂点の配列を作成します。
- 配列内で頂点が発生する回数を決定します
- 頂点が配列内に3回以上ある場合は、配列から頂点を削除します。
- 頂点が配列に2回含まれている場合は、そのうちの1つを削除します。
ただし、次のステップは注意が必要です。私はキャンバスを使用してこれらのポリゴンを描画しています。これには、基本的に、ある頂点から次の頂点に線を描画することが含まれます。したがって、最終的な配列の頂点の順序は重要です。任意に並べ替えることはできません。
また、ポリゴンを正しく描画できないため、「凸包」アルゴリズムは探していません。
このようなことをする関数はありますか?私は正しい方向に進んでいますか、それとももっと効率的な方法がありますか?