c# - 如何将点移动给定距离 d(并获得新坐标)

标签 c# geometry 2d point

嗨 我想知道是否有任何有效的方法来计算点的坐标(从它的原始位置移动距离 d)。

假设我有一个点 P(0.3,0.5),我需要将该点随机移动距离 d。

到目前为止,我是通过随机选择新的 x 和 y 坐标来做到这一点的,我正在检查旧点和新点之间的距离是否等于 d。我确实意识到这样做并不是太有效的方法。 你会怎么做??

最佳答案

给定一个点(x1, y1),我们想在距离d处找到一个“随机”点(x2, y2) > 来自它。

选择一个随机角度theta。然后:

x2 = x1 + d * cos(theta)
y2 = y1 + d * sin(theta)

这将是一个以 (x1, y1) 为中心、半径 d 的圆上的随机点

证明:

Distance between (x1, y1) and (x2, y2)
= sqrt ( (x2 - x1) ^ 2 + (y2 - y1) ^ 2)
= sqrt ( d^2 * (sin^2 (theta) + cos^2 (theta) ) )
= d

你可能想看看:

关于c# - 如何将点移动给定距离 d(并获得新坐标),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4598858/

相关文章:

c - 在c中如何根据一维数组分配二维数组?

algorithm - 检查同一个圆上的两个线段是否重叠/相交

java - Sprite 运动不流畅

c# - 将表单数据传递给 .NET 中的多个操作

javascript - 在模态中加载模型仅有效一次

c# - 如何在 CHM 文件中查找主题 ID

c++ - 计算球体周围的点

c# - 如何在 C# 中覆盖属性的 setter 方法?

c# - 获取坐标边界框,忽略边缘位置

swift - 删除或编辑用户位置蓝色脉冲圆圈