Модераторы: Rickert

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Безгранична карта, как сделать 
:(
    Опции темы
Gold Dragon
Дата 19.12.2005, 09:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: нет
Всего: 71



Планирую один проектик, в котором будет "карта местности". Проблем нет, но чем больше участников, тем больше должна быть карта.
Вопрос в следующем: как можно построить карту, которая теоретически не будет иметь границ и как определять на ней координаты?


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Empirik
Дата 19.12.2005, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 156
Регистрация: 28.10.2005
Где: Россия, Пермь

Репутация: нет
Всего: 1



Есть два варианта: либо генерируешь карту согласно какой либо функции, которая тебе возвращает трехмерные координаты. Идешь по данной функции с заданным шагом по x и по y.
Второй вариант, если карта уже есть то подгружаешь только те области которые ближе всего к пользователю. И выгружаешь из памяти те сектора которые уже не нужны, разумеется предварительно уже готовую карту нужно разбить на сектора самому, либо согласно алгоритму.
А так с бесконечностью могут возьникнуть проблемы, так как все типы используемые в нутри программы имеют максимальные значения и за них ты ни как не выйдешь smile
--------------------
Постоянно удивляюсь человеческой фантазии напридумывают гаджетов
PM MAIL WWW ICQ   Вверх
CrashedZero
Дата 19.12.2005, 10:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 19.12.2005

Репутация: нет
Всего: нет



Проще всего генерировать карту на ходу, исходя из кол - ва "живущих" на этой карте. Генерировать либо случайным образом, либо по картам, либо ещё как - то.
PM MAIL   Вверх
Empirik
Дата 19.12.2005, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 156
Регистрация: 28.10.2005
Где: Россия, Пермь

Репутация: нет
Всего: 1



Цитата(CrashedZero @ 19.12.2005, 10:29)
Проще всего генерировать карту на ходу, исходя из кол - ва "живущих" на этой карте. Генерировать либо случайным образом, либо по картам, либо ещё как - то.

Тут ты прав, я просто не внимательно прочитал вопрос. Проще генерировать карту из отдельных маленьких кусочков, а как выбирать эти кусочке выбирать тебе.
--------------------
Постоянно удивляюсь человеческой фантазии напридумывают гаджетов
PM MAIL WWW ICQ   Вверх
Gold Dragon
Дата 19.12.2005, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: нет
Всего: 71



допустим
- есть первый человек. У него сгенерилась карта 11х11
- если появляется новый человек или первый человек доходит до границы, то генериться рядом ещё одна карта 11х11
- если ширина (длина) достигает N, то генериться карта 11х11, но следующего уровня

В конечном итоге, получается что с карты, грубо говоря, можно уйти в 4 стороны. Но с каждым уровнем их количество увеличивается на 4 и как тогда их нумеровать (считать, учитыват, ориентироваться в них)?

вот картинка моего видения

Присоединённый файл ( Кол-во скачиваний: 40 )
Присоединённый файл  map.gif 3,66 Kb


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Empirik
Дата 20.12.2005, 09:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 156
Регистрация: 28.10.2005
Где: Россия, Пермь

Репутация: нет
Всего: 1



Цитата(Red @ 19.12.2005, 13:26)
допустим
- есть первый человек. У него сгенерилась карта 11х11
- если появляется новый человек или первый человек доходит до границы, то генериться рядом ещё одна карта 11х11
- если ширина (длина) достигает N, то генериться карта 11х11, но следующего уровня

В конечном итоге, получается что с карты, грубо говоря, можно уйти в 4 стороны. Но с каждым уровнем их количество увеличивается на 4 и как тогда их нумеровать (считать, учитыват, ориентироваться в них)?

вот картинка моего видения

Карту, которая была изначальной можно считать за 0:0, если у тебя карта еще трехмерная то её можно считать за 0:0:0 smile И потом изменяешь индексы кусочков согласно выбранным осям
--------------------
Постоянно удивляюсь человеческой фантазии напридумывают гаджетов
PM MAIL WWW ICQ   Вверх
Gold Dragon
Дата 20.12.2005, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: нет
Всего: 71



примерно понял smile

если будут ещё варианты, буду ждать с нетерпением


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
AntonSaburov
Дата 20.12.2005, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: нет
Всего: 118



А нельзя сделать карты в виде шарика (Земля) ?
PM MAIL WWW ICQ   Вверх
DENNN
Дата 20.12.2005, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: 3
Всего: 43



Цитата(AntonSaburov @ 20.12.2005, 13:53)
А нельзя сделать карты в виде шарика

В этом случае неминуемо возникнет проблема с выбором оптимальной проекции: шарик он круглый, а карты плоские.
PM ICQ   Вверх
Gold Dragon
Дата 20.12.2005, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: нет
Всего: 71



Цитата(DENNN @ 20.12.2005, 15:57)
В этом случае неминуемо возникнет проблема с выбором оптимальной проекции: шарик он круглый, а карты плоские.
ну можно сделать примитивно, дошёл до конца с одной стороны, очутился в начале с другой... Если сделать в виде шариков, то придётся придумывать как с одного шарика переходить на другой



--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
DENNN
Дата 20.12.2005, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: 3
Всего: 43



Цитата(Red @ 20.12.2005, 16:51)
ну можно сделать примитивно, дошёл до конца с одной стороны, очутился в начале с другой... Если сделать в виде шариков, то придётся придумывать как с одного шарика переходить на другой

Разные шарики тут не причем. Проблема в том, что ты проецируешь плоский чертеж на кривую поверхность.
Попробуй в уме начни раскладывать карты на поверхности шарика: одна-к-одной, одна-к-одной, как кирпичики. Вдоль экватора все будет замечательно, т.к. погрешности незначительны. Но если ты наченшь двигаться к полюсу, то тут начнутся всяческие накладки.

Возможно автору это совсем не критично, но проблема выбора проекции карты как таковая есть.
PM ICQ   Вверх
Gold Dragon
Дата 20.12.2005, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: нет
Всего: 71



вообще-то у меня две мысли.. Это "бесконечная" карта (одна земля) и "шарики и перходами (грубо говоря вселенная). Пока остановился на первой... хотя вторая заманчивее для игрушки


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
mr.DUDA
Дата 21.12.2005, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 7
Всего: 232



DENNN, можно сферу вытянуть из куба. Разбиваем каждую грань на NxN квадратиков одинакового размера и вытягиваем грани так, чтобы получилась сфера. С развёрткой куба работать достаточно просто, а искажения проявляются только у рёбер куба.


--------------------
user posted image
PM MAIL WWW   Вверх
DENNN
Дата 21.12.2005, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: 3
Всего: 43



mr.DUDA
Это не причем. Я говрил о проблемах вычисления координат соседней точки, если она попадает на соседнюю карту.
PM ICQ   Вверх
mr.DUDA
Дата 21.12.2005, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 7
Всего: 232



Цитата(DENNN @ 21.12.2005, 15:37)
Я говрил о проблемах вычисления координат соседней точки, если она попадает на соседнюю карту.

А я о том, что если карты представлять себе как квадратики на гранях куба, никаких проблем с переходами между картами не будет. Координата точки слагается из номера грани, номера квадратика на грани, и позиции по x и y внутри квадратика грани.


--------------------
user posted image
PM MAIL WWW   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование игр, графики и искуственного интеллекта"
Rickert

НА ЗЛОБУ ДНЯ: Дорогие посетители, прошу обратить внимание что новые темы касающиеся новых вопросов создаются кнопкой "Новая тема" а не "Ответить"! Любые оффтопиковые вопросы, заданные в текущих тематических темах будут удалены а их авторы, при рецедиве, забанены.

  • Литературу, связанную с программированием графики, обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы связанные с программированием графики и мультимедии на языках С++ и Delphi
  • Вопросы по реализации алгоритмов рассматриваются здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование игр, графики и искусственного интеллекта | Следующая тема »


 




[ Время генерации скрипта: 0.0556 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.