Коллега дал мне эту проблему, чтобы опробовать свои знания:Учитывая 2 точки и линию - точки пересекаются с линией? : Алгоритм/псевдокод
Рассмотрим две точки 1 и 2, имеющих координаты (x1, y1) и (x2, y2), соответственно. В той же плоскости, что и эти две точки, есть вертикальная линия, верх и низ которой представлены соответственно (xTop, yTop) и (xBot, yBot) соответственно. Две точки могут находиться на противоположных сторонах стены, на одной стороне стены или непосредственно над/под стенкой. Для простоты ни одна из точек не может быть непосредственно на стене. Линия берется из точки 1 в точку 2; если произойдет пересечение на стене (вертикальная линия), это произойдет в точке (xInt, yIint).
Учитывая две точки и одну стену, напишите алгоритм, чтобы определить, могут ли две точки видеть друг друга. Это может произойти только в том случае, если линия, проведенная от точки 1 до точки 2, не касается стены.
Я правильно определил, что если значения x обоих значений меньше или больше, чем у стены, они могут видеть друг друга. То же самое касается значений y. Я считаю, что в этой проблеме много геометрии. Но, я старик, просто возвращаюсь в программирование для удовольствия, и это действительно пытается понять меня. Любая помощь будет чрезвычайно оценена. Спасибо.
-Jon Н.