【发布时间】:2020-04-02 19:20:28
【问题描述】:
请原谅我缺乏数学知识,我已经有一段时间没有需要这些知识了。我试图以编程方式找到一个点与沿三角形斜边的点正下方的交点之间的距离。
Here is my scenario。所有点都知道 x/y 坐标,我只是想解决距离“A”。交点是直接垂直的。我最终也必须水平做这个,但我想如果我能让它垂直工作,水平翻转它应该不会太难。
【问题讨论】:
请原谅我缺乏数学知识,我已经有一段时间没有需要这些知识了。我试图以编程方式找到一个点与沿三角形斜边的点正下方的交点之间的距离。
Here is my scenario。所有点都知道 x/y 坐标,我只是想解决距离“A”。交点是直接垂直的。我最终也必须水平做这个,但我想如果我能让它垂直工作,水平翻转它应该不会太难。
【问题讨论】:
假设您的 3 个点是 P1=(x1,y1)、P2=(x2,y2) 和 P3=(x3,y3),其中线由 P1 和 P2 定义:
当你将 P3 垂直向下投影到直线上时,投影点的 X 坐标为 x3,Y 坐标(可以从直线的方程推导出):
y1 + (y2 - y1)*(x3 - x1)/(x2 - x1)
P3 和投影点之间的(有符号)距离将是:
y3 - y1 - (y2 - y1)*(x3 - x1)/(x2 - x1)
值的符号告诉您 P3 位于线的哪一侧。如果您对此不感兴趣,只需取绝对值(通常是数学库中的 abs 函数)
【讨论】: