0

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

在此处输入图像描述

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

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

有小费吗?真的感谢。

4

2 回答 2

2

只需使用极坐标

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);
于 2012-09-13T19:26:28.003 回答
0

如果您希望点在两个笛卡尔维度上均匀分布,那么您需要选择随机 x 和 y 坐标,然后丢弃任何不在所需区域内的结果。

于 2012-09-13T19:29:16.093 回答