/
vanwise
/
java_multidimensional_arrays
Обзор
Документация
Войти
/
vanwise
/
java_multidimensional_arrays
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
src/services/MatrixService.java
71 строка
2 KB
Ivan Zhukov
feat: add grayscale matrix rotation
19 сен 2025, 21:41
19 сен 2025, 21:41
6ee34f9
Код
Авторство
О чём код?
package services; import java.util.Random; public class MatrixService { public static final int ANGLE_90 = 90; public static final int ANGLE_180 = 180; public static final int ANGLE_270 = 270; public static final int GRAY_SCALE_SIZE = 8; public static final int GRAY_SCALE_MAX_VALUE = 256; public static void print(int[][] matrix) { for (int[] ints : matrix) { for (int j = 0; j < matrix.length; j++) { System.out.format("%4d", ints[j]); } System.out.println(); } System.out.println(); } public static int[][] rotate(int[][] matrix, int angle) { int matrixMaxIndex = matrix.length - 1; int[][] rotatedMatrix = new int[matrix.length][matrix.length]; for (int i = 0; i < matrix.length; i++) { for (int j = 0; j < matrix.length; j++) { int[] coordinates = getShiftedCoordinatesByAngle(i, j, matrixMaxIndex, angle); rotatedMatrix[coordinates[0]][coordinates[1]] = matrix[i][j]; } } return rotatedMatrix; } private static int[] getShiftedCoordinatesByAngle(int xIndex, int yIndex, int matrixMaxIndex, int angle) { int[] coordinates = new int[2]; switch (angle) { case ANGLE_90: coordinates[0] = yIndex; coordinates[1] = matrixMaxIndex - xIndex; break; case ANGLE_180: coordinates[0] = matrixMaxIndex - xIndex; coordinates[1] = matrixMaxIndex - yIndex; break; case ANGLE_270: coordinates[0] = matrixMaxIndex - yIndex; coordinates[1] = xIndex; break; } return coordinates; } public static int[][] createRandomGrayScale() { Random random = new Random(); int[][] matrix = new int[GRAY_SCALE_SIZE][GRAY_SCALE_SIZE]; for (int i = 0; i < GRAY_SCALE_SIZE; i++) { for (int j = 0; j < GRAY_SCALE_SIZE; j++) { matrix[i][j] = random.nextInt(GRAY_SCALE_MAX_VALUE); } } return matrix; } }