如何对角填充二维数组

How to fill a 2D array diagonally

我有一个二维字符数组,我需要用颜色代码填充它以创建具有图案的合成图像。该数组填充有零,如果 运行 通过单独的程序最终返回黑色图像。我需要用 (char)255(在这个单独的程序中代表白色的颜色代码)沿对角线(在这个方向)填充数组。这将生成一个图像,该图像具有交替的黑色和白色线条,这些线条在对角线方向上。我需要使用嵌套的 for 循环来完成此操作,但我不确定如何将 (char)255 设置为对角线二维数组中的不同元素。这让我很困惑。请帮忙。

这是二维数组:

(0,0) (0,1) (0,2) (0,3) (0,4)

(1,0) (1,1) (1,2) (1,3) (1,4)

(2,0) (2,1) (2,2) (2,3) (2,4)

(3,0) (3,1) (3,2) (3,3) (3,4)

(4,0) (4,1) (4,2) (4,3) (4,4)

数组中需要赋值(char)255的元素为(4,0), (2,0) (3,1) (4,2), (0,0) (1, 1)(2,2)(3,3)(4,4),(0,2)(1,3)(2,4)和(0,4)。

这是我为水平线所做的代码,如果它有助于理解我的问题:

public static char[][] createVerticalStripes(int height, int width, int stripeWidth) {

    // Declaring array for this method

    char[][] image = new char[height][width];

    for (int rows = 0; rows < height; ++rows) {

        for (int columns = 0; columns < width; ++columns) {

            if (columns % stripeWidth == 0) {
                image[rows][columns] = (char) 255;
            }
        }
    }

    return image;
} 

你的意思是这样的吗? (假设你的数组大小是5X5)

class Diagonal {
    static char [][] colorArray = new char [5][5];
    public static void main(String args[])
    {
        for (int i = 0; i < 5; i++ ) {
            // Even rows, including 0th row
            if ((i%2)==0) {
                // Color in locations with even indexes
                for (int j =0; j < 5; j++ ) {
                    if ((j%2)==0) {
                        colorArray[i][j] = 255;
                    }
                }
            } else { // Odd rows
                for (int j =0; j < 5; j++ ) {
                    // Color in locations with odd indexes
                    if ((j%2)!=0) {
                        colorArray[i][j] = 255;
                    }
                }
            }
        }

    }
}