Как найти бесконечные циклы в двухмерном векторном поле? - PullRequest
1 голос
/ 22 марта 2011

У меня конечное размерное 2D векторное поле.Я хочу найти какие-либо «циклы» в этом поле, то есть, если это поле представляет поток жидкости, и вы поместили объект в один из этих циклов, объект будет вращаться вокруг и никогда не будетостальное.Я думаю, что нашел несколько научных математических статей по этой проблеме, но они так далеко над моей головой, что я не могу понять их.Существует ли стандартный алгоритм поиска таких циклов?

Почему я хочу найти такие циклы?Я рассматриваю возможность создания 2D-платформера, который имеет концепцию, аналогичную Super Mario Galaxy, в которой будет несколько небольших гравитирующих тел, между которыми игрок может прыгать и ходить, а не один глобальный гравитационный вектор.Гравитационное поле для статических тел будет вычисляться статически во время редактирования уровня.У меня на самом деле нет , чтобы решить эту проблему, но это был бы очень хороший инструмент для обнаружения неконтролируемых гравитационных петель в редакторе уровней, вместо того, чтобы обнаруживать их при тестировании игры.

1 Ответ

0 голосов
/ 24 декабря 2011

Трудно представить себе «гравитационное поле», содержащее циклы.Однако траектория движения игрока может быть циклической.Мы называем это «орбитой».

Простое решение может заключаться в том, чтобы включить небольшое количество трения или демпфирования, чтобы обеспечить затухание орбит.

Менее гибкое решение: если пространство дискретно,Затем вы можете проверить каждое состояние (положение, скорость) и проверить, не посещает ли игрок когда-либо одно и то же состояние.Обратите внимание, что это также потребовало бы конечного числа допустимых значений скорости.

С точки зрения удобства использования, предоставление игроку некоторых средств приведения в движение было бы также хорошим способом решения проблемы.

...