c# - 将一个点向另一个点移动一定的距离

标签 c# .net

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

我进行了研究,但找不到有关此主题的任何答案。

Point Start;
Point End;
float Distance;

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

假设开始位于(0, 0)结束位于(11, 17) strong>,距离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 距离将看起来比实际距离短。我花了一段时间才找到这个错误,我已经搜索了错误的地方有一段时间了......-.-

关于c# - 将一个点向另一个点移动一定的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15016296/

相关文章:

.net - .NET 中的 LicenseProvider 使用 RSA 加密来保护产品许可证

c# - 粗鲁的代码。 IoC 来拯救

c# - 如何防止拆箱 - 读取任意 sql 行时装箱内存开销

c# - StringBuilder 解决了什么问题?

c# - 机器的唯一 ID 应该是什么?它的主板ID? Windows 产品 ID?

c# - 使用 bool 数组作为自定义字典键

c# - 远程服务器返回错误 : (403) Forbidden

c# - 如何从组中获取第一项并准备数据类对象

c# - Linq 到数据集

c# - 免费的 RTF 到 PDF .NET 组件或工具?