我试图用正方形填充整个屏幕,每个正方形填充不同的颜色。我能够生成充满正方形的整个屏幕,但我无法让它们成为随机颜色。这是我目前所拥有的:
import java.util.Random;
public class RGBRandom
{
public static void main(String[] args)
{
StdDraw.setScale(0, 100);
for (int x = 0; x <= 100; x++)
{
for (int y = 0; y <= 100; y++)
{
int r = (int)Math.random()*256;
int g = (int)Math.random()*256;
int b = (int)Math.random()*256;
StdDraw.setPenColor(r, g, b);
StdDraw.filledSquare(x, y, 0.5);
}
}
}
}
最佳答案
表达式 Math.random()
生成一个介于 0 和 1 之间的实数(不包括 1)。您对 (int)
的强制转换有效地将其转换为 0
。您需要将整个表达式括起来,以便在将随机数乘以 256
之后转换为 int
。
例如
int r = (int) (Math.random() * 256);
或者,正如 Nichar 所建议的那样,使用 Random
代替:
Random random = new Random();
...
int r = random.nextInt(256);
int g = random.nextInt(256);
int b = random.nextInt(256);
random.nextInt(256)
将为您提供一个介于 0 和 255(含)之间的随机数。最好在循环之外创建 Random
的实例。
关于java - 用随机颜色填充每个方 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35706707/