我正在练习考试,我正在做一个练习题。我有一个带有两个参数的方法:一个是圆的半径,一个是要放置在该圆内的点数。方法如下:
private void drawDots(int radius, int numDots){
double ycord;
double xcord;
for(int q = 0; q < numDots; q++){
ycord = -radius + random()*(radius+radius+1);
xcord = pow((pow(radius,2)-pow(ycord,2)),0.5);
turt.moveTo(xcord,ycord);
turt.penDown();
turt.forward(0);
turt.penUp();
}
}
turt
是我用来绘制的对象,penDown()
/penUp()
分别是从画布上放置和移除对象。
我正在尝试定义turt
对象的 x 坐标和 y 坐标以保持在半径范围内。说半径是100
,点数是200
,我如何将对象保持在该半径内?
该问题指出:
“为了将点包含在半径为 r 的圆内,选择区间 -r, r 中的随机 y 坐标。然后在区间 -b, b 中随机选择 x 坐标,其中 b = sqrt(r^ 2 - y^2)。”
我只是不确定如何理解这个数学。上面的代码是我最好的尝试,但输出很奇怪。
这是我失败的输出: