如何选择距离参考点一定距离的随机点

wtr*_*clr 0 java random math

我点(pointA = (x1, y1))和I需要选择一个随机点(pointB = (x2, y2)),使得之间的距离等于ķ.

Anu*_*oob 5

让我们以极地形式解决.

我们需要这些双打distance,x1y1.

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

double angle = Math.random()*2*Math.PI;
Run Code Online (Sandbox Code Playgroud)

然后我们想从我们的观点得到x和y偏移量:

double xOff = Math.cos(angle)*distance;
double yOff = Math.sin(angle)*distance;
Run Code Online (Sandbox Code Playgroud)

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

double x2 = x1 + xOff;
double y2 = y1 + yOff;
Run Code Online (Sandbox Code Playgroud)

这将为您提供一个distance远离您的第一点的点.