寻找点在直线上的投影

Finding the projection of a point onto a line

我数学不是很好,我知道还有其他人问我类似的问题,但我不太明白他们的解释。

我的问题是:我有一条由 2 个点 A、B 和另一个点 X 给出的直线,我想在直线 AB 上找到一个点,表示点 X 在直线 AB 上的投影。

例如,假设我有 A 和 B 的坐标以及点 X,我想按照下图找到 Y 的坐标:

A---Y-------------B
         
    X

我用 C 代表你的 XD 代表你的 Y 避免与坐标混淆。

制作载体

AB = (B.X-A.X, B.Y-A.Y)
AC = (C.X-A.X, C.Y-A.Y)

CAB 的最简单投影形式是:

AD = AB * (AB.dot.AC) / (AB.dot.AB)
D = A + AD

在坐标中:

CF=((B.X-A.X)*(C.X-A.X)+(B.Y-A.Y)*(C.Y-A.Y))/((B.X-A.X)^2+(B.Y-A.Y)^2)
D.X=A.X+(B.X-A.X)*CF
D.Y=A.Y+(B.Y-A.Y)*CF