找到一个圆周的区域

时间:2012-09-13 19:24:03

标签: math geometry

我正在开发一种雷达,我会在其中显示一些坐标。但我有一个数学问题,我无法解决。这是雷达:

enter image description here

它有两个区域:安全区域(白色区域)和危险区域(红色区域)。安全区域的半径为30,整个圆周的半径为100。

我正在开发一种在危险区域中创建随机坐标的功能,但为此,我需要在该区域中随机执行X和Y,我不知道该怎么做。中心是(0,0)

任何提示?非常感谢。

2 个答案:

答案 0 :(得分:2)

只需使用polar coordinates

float radius = min + rand(max - min); // 30 + rand(0..70)
float angle = rand(-PI, PI)

int x = radius*cos(angle);
int y = radius*sin(angle);

答案 1 :(得分:0)

如果你想让点在两个笛卡儿尺寸中均匀分布,那么你需要选择随机的x和y坐标,然后丢弃任何不属于所需区域的结果。