Java绘图颜色随机颜色?

时间:2013-12-30 16:04:45

标签: java arrays swing

我已经阅读了一些代码并且遇到了这个问题:

private int[] tiles = new int [64 * 64];

那是瓷砖阵列。

这会为tiles数组设置一个随机颜色。

    for (int i = 0; i < 64 * 64; i++) {
        this.tiles[i] = rand.nextInt(0xffffff);
    }

现在渲染

public void render() {
    for (int i = 0; i < this.height; i++) {
        for (int j = 0; j < this.width; j++) {
            int index = (j / 50) * 64;
            pixels[j + i * this.width] = tiles[index];
        }
    }
}

(在该类之外渲染,但无关紧要)。

输出:

enter image description here 但如果我将j / 50更改为j / 16,则瓷砖会变小并变为:

enter image description here 为什么会这样?毕竟变量索引只从数组中获取颜色?它为什么会变大? j每次都会改变,每次颜色都不一样吗?

有人可以解释一下吗?我有点困惑。

谢谢!

1 个答案:

答案 0 :(得分:2)

它正在计算颜色列表中的index,您只创建了64种不同的颜色。

通过使用index将x坐标转换为index,循环计算出要使用的64种颜色中的哪种颜色的(j / 50) * 64

因为j是整数j/50会给你步骤,0-49变为0,50-99变为1等等。

当你乘以64时,你仍然保持这些步骤。

如果你将分数从50变为16,那么你的步数是16像素宽,而不是50像素宽。

请注意,不要跑掉随机颜色阵列的边缘!