2016-11-02 7 views
-1

У меня есть массив 2D-символов, который мне нужно заполнить цветовыми кодами для создания синтетических изображений с шаблонами. Массив заполнен нулями, которые в конечном итоге возвращают черное изображение, если они запускаются через отдельную программу. Мне нужно заполнить массив по диагонали (в этом направлении) с помощью (char) 255 (цветовой код, который представляет белый цвет в этой отдельной программе). Это создаст изображение с чередующимися черными и белыми линиями, которые диагональны по направлению. Мне нужно использовать цикл вложенности для выполнения этого, но я не уверен, как установить (char) 255 на разные элементы в 2D-массиве по диагонали. Меня это смущает. Пожалуйста помоги.Как заполнить 2D-массив по диагонали

здесь является 2D массив:

(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; 
} 
+0

Что именно ваша проблема? Вы не знаете, как назначить значение элементу массива? – talex

+0

Ну, что означает * по диагонали * означает? Объясните это мне по-английски. Если вам это удастся, включение его в код не должно быть затруднительным. – Gendarme

ответ

0

ли вы имеете в виду что-то вроде этого? (Предполагая, что размер вашего массива равен 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; 
        } 
       } 
      } 
     } 

    } 
}