参考图片:

红色圆圈的半径为r
蓝色方块的边长为s
我的目标是在蓝色区域内生成一个随机点但不在红色区域中我已经有一个解决方案,但它涉及试错,这不是我喜欢的方法,是否有某种数学解决方案来解决这个问题?
这是我的方法
设rx和ry为随机变量
rx = random number between 0 and s
ry = random number between 0 and s
while (distance(rx,ry,0,0) < r)
{
rx = random number between 0 and s
ry = random number between 0 and s
}
return rx ry;Run Code Online (Sandbox Code Playgroud)