Код закрученного тора - PullRequest
       7

Код закрученного тора

1 голос
/ 28 апреля 2011

Мой вопрос носит частично академический характер, поэтому он здесь не относится, но, поскольку мне нужен только аспект кода искривленного тора, я надеюсь, что никто не возражает против того, чтобы я поставил этот вопрос здесь.В конечном счете, я моделирую так называемые «сеточные ячейки», которые повторяют модели активности.Но здесь мне нужно обернуть подмножество 2D-плоскости в тору, чтобы ход в любом из шести направлений возвратил один назад к начальной точке.

Подход к тору: возьмите КВАДРАТНЫЙ лист бумаги исклейте верх и низ вместе, чтобы получить трубку.Затем заклейте левый и правый концы трубки, чтобы получить пончик.Теперь, если вы начинаете в центре листа бумаги (это теперь пончик), если вы путешествуете в любом из 8 направлений:

  1. N
  2. NE
  3. E
  4. SE
  5. S
  6. SW
  7. W
  8. NW

youбудет кружить вокруг пончика ровно один раз и вернется в исходное положение.

Теперь, если вы выберете определенный размер для этой «квадратной бумаги», скажем, 10x10, то для среды размером 100x100, даже если вы путешествуете по прямой линии в окружении, можно было бы зацикливаться вокруг «тора»10 раз и вернитесь к той же точке.Преимущество заключается в том, что среду можно расширять до бесконечности, и тор будет реагировать, просто обводя несколько раз

Код для этого тривиален, так как он включает в себя только вычисление координат среды, mod ширина / длина«квадратная бумага».Проблема в том, что по правилу Пифагора диагональные перемещения (NE, SE, SW, NW) будут длиннее, чем в других четырех направлениях (N, E, S, W).Чтобы справиться с этим, мы используем равносторонние треугольники или гексагональную сетку, так что если вы путешествуете в каждом из шести направлений, расстояние будет одинаковым:

Искривленный тор: возьмите лист бумаги и каким-нибудь образом заклейте еговместе, так что пройденное расстояние будет одинаковым для любого из следующих шести направлений:

  1. 0
  2. 60
  3. 120
  4. 180
  5. 240
  6. 300

Проблема в том, что я не могу найти одно прямое объяснение того, как сделать скрученный тор.Я просмотрел следующее, и они слишком расплывчаты для меня

Скрученное видео Тора

Инструкции по созданию TT

Сеточные ячейки на основе TT I

Сеточные ячейки на основе TT II

Может кто-нибудь дать мне небольшой фрагмент кода о том, какЯ мог бы реализовать это?Приветствия

РЕДАКТИРОВАТЬ Мне нужно сопоставить непрерывное пространство на витом торе так, чтобы путешествие в любом из шести направлений среды периодически возвращалось к тому же месту на «квадрате».бумага».

...