Как найти это конкретное c соотношение точки между двумя отрезками линии? - PullRequest
1 голос
/ 12 июля 2020

введите описание изображения здесь

У меня есть два отрезка линии, определяемые точками AB и CD и точка P где-то внутри неправильного квадрата ABD C. Мне нужно найти соотношение от 0 до 1, в зависимости от того, где точка P находится между линиями AB и CD . Если P лежит где-нибудь на AB , это должно быть 0, если оно лежит где-нибудь на CD , это должно быть 1. На иллюстрации это должно быть от 0.55 до 0.6, я полагаю.

Если бы две линии были параллельны, я мог бы просто измерить расстояние до обеих линий, так что это было бы легко.

Я пробовал поиграть со всеми видами углов и расстояний между различными точками, но, похоже, не могу найти никакой константы, на которой я мог бы основывать свою функцию.

Я предполагаю, что у меня есть как-то перевести строку AB в CD и найти точку в «прогрессе перевода», где P лежит на этой «переводящей» строке, именно в этот момент перевод, если это имеет смысл.

1 Ответ

0 голосов
/ 12 июля 2020

Как и предложил Строберри, я должен вычислить точку схождения AB и CD . Назовите эту точку X , затем вычислите точку пересечения PX с BD и измерьте расстояние от этой точки пересечения до B . Это расстояние, деленное на длину BD , является именно тем соотношением, которое я искал!

...