识别两点之间的 90 度投影

Identify 90'degree projection between two points

python中我有两个点,二维的A和B。

我有一个用户在这两点之间旅行(现在是矢量?)。

这些点之间的距离任意远。

我想在距离原始线 100m 的这两个点之间的中间位置计算 2 个投影(?),一个投影在 90 度,另一个在 180 度。

在上图中,我有A点和B点,而我想计算C点和D点。

有人可以帮我算算这个数学吗?

考虑从A到B的方向向量:

ab = (x2 - x, y2 - y)

那么,与这条线正交的向量为:

orth = (y - y2, x2 - x)

这个向量(和方向向量)的长度是:

l = sqrt((x2-x)^2 + (y2-y)^2)

直线的中点是

m = 1/2 * (x + x2, y + y2)

最后C、D两点为:

C/D = m +- orth * 100 / l