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

Программирование на Юнити.

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

Сообщение Neodrop 08 авг 2009, 16:03

Камрады, помогите найти что квадрат пересекает линию. :-?
У вас нет доступа для просмотра вложений в этом сообщении.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Пересечение линии и квадрата.

Сообщение Ferz 09 авг 2009, 23:34

1. Первым делом записываем уравнение прямой проходящей через две точки: (http://ru.wikipedia.org/wiki/Прямая)
(y1-y2)x+(x1-x2)y+(x1y2-x2y1)=0, где (x1,y1) и (x2,y2) - две точки.
Теперь уберем равенство нулю и будем иметь функцию f(x,y). Если f(x,y)<0 то (x,y) лежит ниже прямой описываемой двумя точками(x1,y1) и (x2,y2), если равно 0 - то эта точка принадлежит прямой, если > - то выше прямой.
2. Пусть есть отрезок l1, задваемый точками p1 и p2, и отрезок l2,с точками p3,p4. Создаем функцию для первого отрезка f1, и проверяем знаки
f1(p3) и f1(p4). Если они разные - то прямая f1 и отрезок l2 пересекаются. осталось, чтобы пересекались отрезки, для этого можно а) сделать то же самое для f2 и p1 и p2 - если пересекаются, то и отрезки пересекаются. б) наделать условий на координаты точек, ну тут можно напутать)))
Соотетственно проверяете пересечение вашего отрезка с каждой стороной квадрата и делаете выводы.

Вариант 2.
Через площадь треугольника. (http://ru.wikipedia.org/wiki/Треугольник)
По формуле 8 считает площадь треугольника - s1. Потом, по этой же формуле, считаете сумму площадей трех треугольников S3, в каждый из которых входит одна сторона исходного треугольника и исследуемая точка p1. Если s1 = S3, то p1 лежит внутри треугольника, или на его границе, если s1<S3, значит p1 снаружи. Соответственно разбиваете Ваш квадрат на 2 треугольника и проверяете две точки вашего отрезка.

Надеюсь изложил понятно, и с реализацией проблем не возникнет!)) пишите, если что, чем смогу помогу))
Ferz
UNец
 
Сообщения: 35
Зарегистрирован: 25 июл 2009, 00:20

Re: Пересечение линии и квадрата.

Сообщение Neodrop 10 авг 2009, 00:10

Спасибо.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3