【问题标题】:How to chose a random point at a certain distance to a reference point如何选择到参考点一定距离的随机点
【发布时间】:2022-02-24 05:21:05
【问题描述】:

我有点 A (pointA = (x1, y1)),我需要选择一个随机点 B (pointB = (x2, y2)),这样 A 之间的距离B 等于 K

【问题讨论】:

标签: java math random


【解决方案1】:

让我们以极坐标形式求解。

我们需要distancex1y1 的这些替身。

首先,我们需要以弧度为单位的角度:

double angle = Math.random()*2*Math.PI;

然后我们想从我们的点获取 x 和 y 偏移量:

double xOff = Math.cos(angle)*distance;
double yOff = Math.sin(angle)*distance;

然后我们将这些添加到我们的第一点:

double x2 = x1 + xOff;
double y2 = y1 + yOff;

这将使您在距离您的第一个点某个distance 处获得一个点。

【讨论】:

  • 为什么角度 = Math.random() * 2 * PI ?
  • 哦,我明白了。最大随机数为 1. 1 * 2 * 3.14 = 6.28 弧度 = 360°。
【解决方案2】:

这是一道简单的数学题。

x2 = x1 - k + 2k*new Random().nextDouble()

现在你可以计算 y2。

【讨论】:

    猜你喜欢
    • 2012-07-21
    • 1970-01-01
    • 2021-07-14
    • 1970-01-01
    • 2011-02-07
    • 2012-04-12
    • 1970-01-01
    • 2021-03-03
    • 2017-01-02
    相关资源
    最近更新 更多