将一点向另一点移动一定距离

本文关键字:一点 距离 移动 | 更新日期: 2023-09-27 18:00:33

如果我不能很好地解释标题,我很抱歉。

我做过研究,找不到关于这个话题的任何答案。

Point Start;
Point End;
float Distance;

这就是我需要帮助的地方,我需要将点开始移到点结束,只有距离长。

因此,假设开始位于(0,0)结束处于[(11,17)离2.5

斜率为17/11,也就是17超过11。但是这两点之间的距离是多少?假设两点之间的距离是20f。我想将点开始移到点结束,距离,即2.5f

因此,在结束时,点Start和点end之间的距离将为17.5(20-2.5)

但是,正如我之前提到的,我在互联网或这些论坛上找不到任何关于这方面的东西如何获得两点之间的距离(而不是斜率)?我如何将一个点沿着距离移动一定的距离

希望我能解释一下自己。感谢

将一点向另一点移动一定距离

很抱歉回答了一个旧问题,但所选答案并不完全正确。

yDiff = Math.Abs(Start.Y - End.Y);
xDiff = Math.Abs(Start.X - End.X);
distance = Math.Sqrt(yDiff * yDiff + xDiff * xDiff)

注意两个xDiff之间有一个乘法*运算符,而不是加号

如果你用+号代替*号,那么X距离看起来会比实际短。我花了一段时间才找到这个错误,我已经搜索错误的地方有一段时间了…-

你有一个点,斜率,距离:

您可以使用以下公式来获得坐标:

Y = m(d/(1+m^2)^(1/2) + x) - mx + y, x=0,y=0, d= 2.5, m=17/11

然后你可以通过求解下面的方程得到X。

Y=17/11(X)

使用直角三角形关系:

c*c = a*a + b*b

其中c是最长边(斜边)因此:

yDiff = Math.Abs(Start.Y - End.Y);
xDiff = Math.Abs(Start.X - End.X);
distance = Math.Sqrt(yDiff *yDiff + xDiff*xDiff)