随机X Y坐标

时间:2011-06-21 22:39:38

标签: c#

我想得到一些随机(x,y)坐标,但我不知道该怎么做。坐标之间的相对差异必须为60。

例如,以像素为单位:

x    y
0    60
0    120
0    180
60   0
120  60
180  60
....

如何使用C#完成此操作?

2 个答案:

答案 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;