我正在开发一种雷达,我会在其中显示一些坐标。但我有一个数学问题,我无法解决。这是雷达:
它有两个区域:安全区域(白色区域)和危险区域(红色区域)。安全区域的半径为30,整个圆周的半径为100。
我正在开发一种在危险区域中创建随机坐标的功能,但为此,我需要在该区域中随机执行X和Y,我不知道该怎么做。中心是(0,0)
任何提示?非常感谢。
答案 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坐标,然后丢弃任何不属于所需区域的结果。