私の質問は学術的なものなので、ここには属しませんが、ねじれたトーラスのコードの側面のみが必要なので、ここでこの質問をすることを誰も気にしないことを願っています. 私は最終的に、アクティビティのパターンを繰り返す「グリッド セル」と呼ばれるものをモデル化しています。しかし、ここで必要なのは、2D 平面のサブセットをトーラスにラップして、6 つの方向のいずれかに移動すると開始点に戻るようにすることです。
トーラス アプローチ: 正方形の紙を用意し、上部と下部をテープで合わせてチューブを作成します。次に、チューブの左右の端をテープで留めてドーナツを作ります。ここで、紙の中央 (現在はドーナツ) から開始し、8 つの方向のいずれかに移動すると、次のようになります。
- N
- NE
- え
- SE
- S
- SW
- W
- 北西
ドーナツを正確に 1 周して、最初の位置に戻ります。
この「正方形の紙」に 10x10 などの特定のサイズを選択すると、サイズが 100x100 の環境では、環境内を直線で移動する場合でも、「トーラス」を 10 回ループして、同じ点。ここでの利点は、環境を無期限に拡張できることであり、トーラスは単純に何度も周回するだけで反応します。
このコードは、「正方形の紙」の幅/長さを変更して環境座標を計算するだけなので、簡単です。問題は、ピタゴラスの法則により、斜めの移動 (NE、SE、SW、NW) が他の 4 つの方向 (N、E、S、W) よりも長くなることです。これに対処するために、正三角形または六角形のメッシュを使用して、6 つの方向のそれぞれに移動する場合、移動距離が同じになるようにします。
ツイスト トーラス: 一枚の紙を取り、移動距離が次の 6 つの方向のいずれについても同じになるようにテープで貼り付けます。
- 0
- 60
- 120
- 180
- 240
- 300
問題は、ねじれたトーラスを作成する方法についての簡単な説明が見つからないことです。私は以下に目を通しましたが、それらは私には曖昧すぎます
これをどのように実装できるかについて、誰かがコードの小さなスニペットを提供してくれますか? 乾杯
編集必要なのは、環境内の6つの方向のいずれかに移動すると、「正方形の紙」の同じ場所に定期的に戻るように、連続空間をねじれたトーラスにマッピングすることです。