我想得到一些随机(x,y)坐标,但我不知道该怎么做。坐标之间的相对差异必须为60。
例如,以像素为单位:
x y
0 60
0 120
0 180
60 0
120 60
180 60
....
如何使用C#完成此操作?
答案 0 :(得分:2)
您可以执行以下操作:
x = random(0, n)
if(x - 30 < 0)
y = random(x + 30, n)
else if(x + 30 > n)
y = random(0, x - 30)
else
// in this case, x splits the range 0..n into 2 subranges.
// get a random number and skip the "gap" if necessary
y = random(0, n - 60);
if(y > x - 30) {
y += 60;
有意义吗?它基本归结为“在0到n之间选择两个相差超过30的随机数”。以上不能处理n
答案 1 :(得分:0)
假设您希望这些坐标在0到n范围内。然后你必须得到一个介于0和n / 30之间的随机数,然后乘以30.所以:
Random r = new Random();
coordinate_whatever = r.Next(n / 30) * 30;