Java 如何选择与参考点有一定距离的随机点
我有点A(Java 如何选择与参考点有一定距离的随机点,java,math,random,Java,Math,Random,我有点A(点A=(x1,y1)),我需要选择一个随机点B(点B=(x2,y2)),这样A和B之间的距离等于K这是一个简单的数学问题 x2 = x1 - k + 2k*new Random().nextDouble() 现在你可以计算y2了。这是一道简单的数学题 x2 = x1 - k + 2k*new Random().nextDouble() 现在你可以计算y2了。让我们用极坐标形式求解 我们需要这些双倍的distance,x1和y1 首先,我们需要以弧度为单位的角度: double an
点A=(x1,y1)
),我需要选择一个随机点B(点B=(x2,y2)
),这样A和B之间的距离等于K这是一个简单的数学问题
x2 = x1 - k + 2k*new Random().nextDouble()
现在你可以计算y2了。这是一道简单的数学题
x2 = x1 - k + 2k*new Random().nextDouble()
现在你可以计算y2了。让我们用极坐标形式求解 我们需要这些双倍的
distance
,x1
和y1
首先,我们需要以弧度为单位的角度:
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
,x1
和y1
首先,我们需要以弧度为单位的角度:
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;
这将使您在距离第一个点一定距离的地方获得一个点。[此答案][1]符合您的要求。[1] :可能重复的不是重复的。我投票结束这个问题,因为它是一个几何问题,而不是编码/软件问题。[这个答案][1]符合您的要求。[1] :可能重复的不是重复的。我投票结束这个问题,因为它是一个几何问题,不是一个编码/软件问题。为什么angle=Math.random()*2*PI?哦,我明白了。最大随机数为1。1*2*3.14=6.28弧度=360度。为什么角度=Math.random()*2*PI?哦,我明白了。最大随机数为1。1*2*3.14=6.28弧度=360°。