HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Наш форум > Флуд > Разбиение двумерного пространства
  Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
Smykov
Частый гость

Группа: Неопытный
Дата регистрации: Jul 2017
Проживает: Unknown City
Сообщений: 62
Возраст: 20

Рейтинг



Разбиение двумерного пространства

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

C++ Source Code:
структура Face:
Point2D _posXY;
// или Rect, у которого top, left, right, bottom
// сразу будет иметь значения позиции в нашей системе координат
Texture _texture;



Вот, такими гранями мы заполнили карту. И имеется у нас камера, которая, также, имеет свою позицию, ширину и высоту. Весь обзор камеры отображается на нашем экране.

"Сломался" я на представлении того, как определять пересекает ли грань область обзора камеры или нет. Точнее, алгоритм пересечения прямоугольников я могу представить. Но, наверно, не есть хорошо сравнивать на пересечение все прямоугольники карты с прямоугольником обзора. И, вот, затрудняюсь придумать более лаконичный способ отсечения карты.
Я понимаю, что это не совсем простая задача, и стоило бы поискать в интернете какую-нибудь теорию, но затрудняюсь в самом поиске (а что искать вообще?). Буквально, поверхностно прочитал статью о двоичном разбиении пространства (BSP), но пока что не стал более детально в это вникать, т.к. ещё не понял, а пригодится ли мне это для решения данной задачи.

Для чего мне всё это. Ведь можно было бы всю карту подразделить на фиксированные тайлы определённых размеров и, к примеру, символами рисовать мозаику. Тогда в таком случае затруднительно будет рисовать элементы, которые превышают размеры одного тайла. (по крайней мере, мне так кажется).



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

Вот подробно рассказал в чём у меня проблема. Есть что сказать или посоветовать? Я ещё не смог себя убедить в том, что мне это не по силам.

Сообщить модератору | | IP: Записан
Сообщение: 174903

Старое сообщение 02-02-2019 16:44
- За что?
 Дядя Миша
who said meow?

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 22093
Нанёс повреждений: 361 ед.

Рейтинг



двухмерное пространство разбивать BSP еще проще чем трёхмерное.

Цитата:
Smykov писал:
как определять пересекает ли грань область обзора камеры или нет

С такой формулировкой задачи сломается кто угодно.

__________________
В действительности всё может оказаться иначе, чем оно есть на самом деле

My Projects: download page

Сообщить модератору | | IP: Записан
Сообщение: 174904

Старое сообщение 02-02-2019 16:49
-
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 03:36. Новая тема    Ответить
  Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Наш форум > Флуд > Разбиение двумерного пространства
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Crystice Softworks © 2005-2019