Комментарии 11
А как будет выглядеть minimap в такой стратегии?
0
Получается в любой момент виден весь мир, вопрос только в том, насколько хватит разрешения чтобы его рассмотреть. Я про игру, разумеется.
0
>Жаль, что геометрия нашего мира в обозримом масштабе не гиперболическая
Может это мне только кажется, но разве мы воспринимаем мир не как гиперболический? Например, такое явление как перспектива в случае зрения.
Может это мне только кажется, но разве мы воспринимаем мир не как гиперболический? Например, такое явление как перспектива в случае зрения.
0
Завидую Вашему умению писать такие посты, когда от лимона осталась только половина.
+2
Интересно узнать, как эффективно моделировать игровую сетку на плоскости Лобачевского. Как, например, это сделано в Hyperrogue?
0
Там на каждую клетку заводится объект, который сылается на соседние с ним клетки. Объект создается отложено, по мере необходимости, так как карта бесконечна. При этом то, что на этой ячейке может находится, зависит от текущего опыта игрока.
Как обходится проблема дырок в такой сетке (если обойти несозданные ячейки, трудно понять что пришел в существующую другим путем) я не разобрался. Я бы следил, что бы созданная область была выпукла. Но возможно это слишком редкая ситуация — обойти по кругу большой участок тяжело.
Как бы перечислить ячейки мне тоже интересно. Системы координат я придумать не смог. У меня есть задумка игры, для которой хорошо бы подошла карта локально евклидова, но глобально Лобачевского.
Как обходится проблема дырок в такой сетке (если обойти несозданные ячейки, трудно понять что пришел в существующую другим путем) я не разобрался. Я бы следил, что бы созданная область была выпукла. Но возможно это слишком редкая ситуация — обойти по кругу большой участок тяжело.
Как бы перечислить ячейки мне тоже интересно. Системы координат я придумать не смог. У меня есть задумка игры, для которой хорошо бы подошла карта локально евклидова, но глобально Лобачевского.
0
Системой координат на плоскости Лобачевского могут быть обычные комплексные числа из верхней полуплоскости. Перемещение плоскости там является дробно-линейным преобразованием (a*z+b)/(c*z+d), где все a,b,c,d вещественны.
Эта реализация лучше, чем диск Пуанкаре, потому что при приближении к границе Im z=0 (которая на плоскости соответствует бесконечности) мы получаем малые значения y, которые в double хранятся без потери значащих цифр. При приближении к границе круга x^2+y^2=1 мы бы неизбежно теряли точность.
Вот поддерживать в этих условиях «целочисленные» координаты ячеек не получится. Оно и понятно: при сдвиге на радиус R мы получим exp( R ) возможных ячеек. Разумные арифметические модели этого не выдержат.
Одна из альтернатив — найти конечное поле, которому принадлежат центры ячеек. В случае (7,6,6) это непросто, но в каком-нибудь {5,4} или {4.5} вполне реально. Тогда карта будет периодической, но период настолько большой, что с копией игровой области мы вряд ли встретимся.
Эта реализация лучше, чем диск Пуанкаре, потому что при приближении к границе Im z=0 (которая на плоскости соответствует бесконечности) мы получаем малые значения y, которые в double хранятся без потери значащих цифр. При приближении к границе круга x^2+y^2=1 мы бы неизбежно теряли точность.
Вот поддерживать в этих условиях «целочисленные» координаты ячеек не получится. Оно и понятно: при сдвиге на радиус R мы получим exp( R ) возможных ячеек. Разумные арифметические модели этого не выдержат.
Одна из альтернатив — найти конечное поле, которому принадлежат центры ячеек. В случае (7,6,6) это непросто, но в каком-нибудь {5,4} или {4.5} вполне реально. Тогда карта будет периодической, но период настолько большой, что с копией игровой области мы вряд ли встретимся.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Развлечения на плоскости Лобачевского