XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
Ежик

offline
Опыт: 2,536
Активность:
Прохождение
Есть 4 точки. Они могут составить из себя либо квадрат,либо прямоугольник.Как узнать пересёк ктонибуть линию между этими точками?Ещё важно знать,со внутренний стороны пересекли,или со внешней.
Миниатюры
Кликните на картинку для увеличения
Название:  f22.jpg
Просмотров: 10
Размер:  63.6 Кбайт  
Старый 02.10.2011, 01:07
Faion
Noblesse Oblige
offline
Опыт: 30,395
Активность:
Сравнить координаты юнита с имеющимся координатами.
Старый 02.10.2011, 01:29
Doc

offline
Опыт: 63,163
Активность:
Запоминаешь позицию "кого-то" каждый тик, каждый же тик образуешь вектор из новой позиции в старую, проверяешь пересечение линий, по этому поводу материала в интернете куча, профит.
Старый 02.10.2011, 02:25
Hanabishi
COOL STATUS
offline
Опыт: отключен
Ежик, прям соседняя тема "Библиотека функций", там в первом посте кат "» Принадлежность точки произвольному четырёхугольнику".
Старый 02.10.2011, 09:42
DioD

offline
Опыт: 45,134
Активность:
совершенно необязательно строить векторы или использовать сложные системы, рассчёт совершенно элементарен, чтобы рассчитывать тех кто вошел вышел, необходимо запоминать тех кто внутри, чтобы рассчитывать сторону, надо брать прямоугольник большего размера и запоминать кто где стоит.
Старый 02.10.2011, 10:22
Faion
Noblesse Oblige
offline
Опыт: 30,395
Активность:
Цитата:
Сообщение от DioD
совершенно необязательно строить векторы или использовать сложные системы, рассчёт совершенно элементарен, чтобы рассчитывать тех кто вошел вышел, необходимо запоминать тех кто внутри, чтобы рассчитывать сторону, надо брать прямоугольник большего размера и запоминать кто где стоит.


Классный велосипед.

1)Сохраняем у всех ректов min\max x\y в паралельные массивы + дублируем массивы и +/- 200
2)Создаем эвент, юнит входит\покидает в зону
3)Используем код ниже для вычисления вхождения:
Код:
((rect_min_x[i] <= x) && (x <= rect_max_x[i]) && (rect_min_y[i] <= y) && (y <= rect_max_y[i]))

4)Используем дубль для просчета выхода из зоны как показано на примере выше.
5)Используем для вычисления стороны прямоугольника: 57,295827 * Atan2(y2 - y1, x2 - x1)
Старый 02.10.2011, 13:45
First_Advisor
защитник людишек О_о
offline
Опыт: 5,203
Активность:
Ежик, реализуемо на ГУИ, сделав прямоугольник/квадрат зоной и фиксировать вход в неё
Старый 02.10.2011, 13:46
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 17:10.