在矩形内生成随机向量但不是圆形?

时间:2010-08-09 23:02:40

标签: language-agnostic random vector geometry

我有一个矩形,并且在该矩形内部(围绕矩形的中心)有一个圆圈。我想生成一个落在矩形内的随机双分量矢量,但不是圆形。我该怎么办?

编辑:我更喜欢一种方法,我可以用它来生成满足这些约束条件的向量而不会强制它。

2 个答案:

答案 0 :(得分:1)

Vector = Rectangle.RandomVector();

while (Circle.Contains(Vector)) {
    Vector = Rectangle.RandomVector();
}
阿卡,只是蛮力。它每次都有21.5%的机会在圈外:)

答案 1 :(得分:0)

为向量的x和y分量生成随机数,使得x

更新:生成非均匀分布但不丢弃任何矢量的另一种方法如下:从0到2 * pi的间隔中随机选择一个角度。现在通过随机选择一个值来确定矢量的长度,该间隔由线的交点确定,该交点与前一个角度从圆心和矩形开始。 当保护到圆上时,得到的分布将是均匀的。每个角度也都是均匀的。然而,它在飞机上不会是均匀的。