Расстояние от точки к другой точке - PullRequest
1 голос
/ 13 апреля 2011

Для заданной точки, точки a (x1, y1) и точки c (x3, y3) мы можем вычислить наклон m.Предполагая, что у нас есть расстояние d, я немного застрял, пытаясь выяснить, как найти точку b (x2, y2), которая является расстоянием d от x1, y1 в направлении c.

Кто-нибудь знаеткак рассчитать это?Я думал об использовании функции средней точки, но она не совсем там.

Справка?

Ответы [ 2 ]

3 голосов
/ 13 апреля 2011

Вы можете вычислить полное расстояние между a и c с помощью:

        __________________________________
df =   / (x3-x1)*(x3-x1) + (y3-y1)*(y3-y1)
     \/

Используется стандартный метод "корень суммы квадратов".

Тогда, если требуемое фактическое частичное расстояние равно dp, точку можно найти в точке (x2, y2) с помощью:

x2 = x1 + dp/df * (x3-x1)
y2 = y1 + dp/df * (y3-y1)

, который просто перемещает правильную пропорцию dp/df в обоих измерениях.

1 голос
/ 13 апреля 2011

Вы можете получить направление от A до B следующим образом:

D = B - A

Затем вы можете нормализовать направление (что означает, что это величина 1 или длина 1):

N = D / D.Length

где

D.Length = sqrt(D.X * D.X + D.Y * D.Y)

Чтобы найти точку на линии, заданной A и B, в X единицах от A в направлении B, вы должны использовать следующее:

Final = A + N * X
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...