如果我不能很好地解释这个标题,我很抱歉。
我做过研究,但在这个主题上找不到任何答案。
Point Start;
Point End;
float Distance;
这是我需要帮助的,我需要将开始指向点结束,仅距离。
让我们说开始位于(0,0),结束位于(11,17),距离 2.5 。
斜率 17/11 又 17> 11 。但这两点之间的距离是多少?可以说两点之间的距离是20f。我想将开始指向距离,距离, 2.5f 。
所以最后,点开始和点结束之间的距离将 17.5 (20-2.5)。
但是,正如我之前提到的,我在互联网或这些论坛上找不到任何关于此事的内容。 如何获得两点之间的距离(不是斜率)?如何沿着距离移动一个点一定距离?
希望我能解释一下自己。感谢
答案 0 :(得分:3)
很抱歉回答旧问题,但所选答案并不完全正确。
yDiff = Math.Abs(Start.Y - End.Y);
xDiff = Math.Abs(Start.X - End.X);
distance = Math.Sqrt(yDiff * yDiff + xDiff * xDiff)
注意两个xDiff之间是否有乘法*运算符,而不是+符号。
如果您使用+符号而不是*符号,那么X距离将显示为比实际更短。我花了一段时间才发现这个错误,我现在一直在寻找错误的地方...... -.-
答案 1 :(得分:1)
使用直角三角关系:
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)
答案 2 :(得分:0)
你有一个点,斜率,距离:
您可以使用以下公式获取坐标:
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)