HLFX.Ru Forum
Показать все 2 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Флуд (https://hlfx.ru/forum/forumdisplay.php?forumid=11)
-- Разбиение двумерного пространства (https://hlfx.ru/forum/showthread.php?threadid=5168)


Отправлено Smykov 02-02-2019 в 16:44:

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

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

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


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

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

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



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

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


Отправлено Дядя Миша 02-02-2019 в 16:49:

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

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

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

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Временная зона GMT. Текущее время 19:31.
Показать все 2 сообщений этой темы на одной странице

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