如何对角填充二维数组
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;
}
}
}
}
}
}
我有一个二维字符数组,我需要用颜色代码填充它以创建具有图案的合成图像。该数组填充有零,如果 运行 通过单独的程序最终返回黑色图像。我需要用 (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;
}
}
}
}
}
}