Учитывая начальную точку, заголовок, расстояние и отрезок линии, найдите первую точку вдоль этого заголовка, которая находится на указанном расстоянии от этого сегмента линии.Как я могу найти первую точку вдоль заголовка, на указанном расстоянии от сегмента линии?
Я рассмотрел два случая, но я не смог покрыть последний.
Первый случай: отходит от линии. Игнорируйте его, даже если начальная точка находится на указанном расстоянии.
Второй корпус: он пересекает линию. Я решил это с помощью триггера и треугольников. Первоначально не рассматривал следующий случай.
Третий корпус: он движется к линии, но не пересекает его. Я думаю, что это разрешит второй случай, если это будет сделано правильно.
Три подслучая:
Минимальное расстояние линии больше, чем заданное расстояние. Игнорируй это.
Минимальное расстояние от линии равно указанному расстоянию. Нашли уже очки.
Минимальное расстояние между линиями меньше указанного расстояния. Это означает, что есть перпендикулярная линия от направления вдоль конечной точки сегмента линии, которая меньше требуемого расстояния. Это также означает, что по обе стороны этой перпендикулярной линии будут две линии требуемого расстояния. Один перпендикулярен заголовку, а другой ближе всего к той же конечной точке, а не перпендикулярно заголовку. Просто нужно найти эти точки и посмотреть, какая из них ближе к начальной точке.
Здесь я застрял сегодня. Рисование это было легко, но сделать векторный calc или все получилось сложным.
Можно перефразировать это так:
В какое время (ов) P(t) = P0 + t*v
на расстоянии D
от отрезка L((x1,y1), (x2,y2))
?
v=(sin(heading), -cos(heading))
в моем случае.