Pull to refresh

Comments 5

Дистанция между точками

Напомнило случай, когда ещё учился в ВУЗе. Возникла необходимость алгоритмически определить факт прохождения объекта через границу, вершинами которой были точки, случайно разбросанные по «карте».

Долго ломали с другом головы. Решение придумали неожиданно простое. Да-да! Именно «неожиданно», т.к. нам казалось, что всё окажется куда сложнее. Необходимо было рассчитывать на каждом шаге расстояние от объекта до вершин, и запоминать его. Как только расстояние между одной из пар окажется минимальным, а затем начнёт расти — значит, объект прошёл между указанными точками.

Тогда я усвоил, что знать математическую программу — это действительно полезно. С тех пор привожу этот пример людям, которые пытаются обсудить непригодность школьной программы в жизни.
Спасибо за историю ). На самом деле часто за сухими формулами скрываются чьи-то маленькие открытия, «вау-эффекты». Конечно, математика одна из наиболее практичных наук. Большинство просто пользуются ее плодами, не замечая. Но есть и те, кому приходится вникать — как там все устроено ).
Объект только по прямой двигается? А если он подъехал к границе, не пересекая её, потом развернулся на 180, и поехал обратно, критерии выполнятся, но без пересечения?
в этот случай можно добавить проверку, что поменялся знак у вектора расстояния от объекта до граничной прямой (т.е. она была «слева от прямой, а стала — справа» или наоборот)

В принципе — лучше сразу его считать, но запоминать только знак, и ждать — пока он не изменится (или станет равным нулю).
Именно так, что нужно вводить новые сущности (граничная прямая или что-то ещё). Решение из поста выше, с расчётом только расстояний между точками, простое, но, скорее всего, неправильное в общем случае.
Sign up to leave a comment.

Articles