Показать сообщение отдельно
Старый 18.11.2011, 02:41   #3
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Оптимальный способ проверить находится ли объект между точками знаете?

Векторы?

1.Вектор соединяющий точки. Вектор от точки до объекта. Считаешь их длины.

Косинус угла между векторами (x1*x2+y1*y2+z1*z2)/(|длина первого|*|длина второго|). Чем ближе значение к единице тем ближе позиция объекта к линии соединяющей точки. При единице лежит на линии.


2. Вектор от первой точки к второй назовем а. От первой точки к объекту б.

если координата икс у обоих одного знака и у б она меньше по модулю, то если отношение координат этих векторов равно, то объект лежит между точек.

Одинаковый знак если произведение координат больше равно нуля.

if ((a.x*b.x>=0) && (b.x/a.x==b.y/a.y && b.x/a.x=b.z/a.z)) { ... }

Последний раз редактировалось dsd, 18.11.2011 в 10:43.
(Offline)
 
Ответить с цитированием