Java - como rotar una imagen 90 grados

 
Vista:
Imágen de perfil de jhon james

como rotar una imagen 90 grados

Publicado por jhon james (4 intervenciones) el 12/02/2018 15:53:00
Buen día compañeros estoy empezando en el mundo de la programación y me he encontrado este problema de rotar una imagen 90 grados, el ejercicio es de un arreglo bidimensional.

Enunciado
Escriba un método que sea capaz de rotar una imagen 90 grados a la derecha.

Código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/**
* Rota la imagen 90 grados hacia la derecha
*/
public void rotar90ALaDerecha()
{
    int ancho = bitmap[0].length;
    int alto = bitmap.length;
 
    Color temp[][]= new Color[ancho][alto];
    int nuevaColumna = alto - 1 ;
    for(int i = 0; i < alto; i++, nuevaColumna--) {
        for(int j = 0; j < ancho; j++) {
            temp[j][nuevaColumna] = bitmap[i][j];
        }
    }
    bitmap = temp;
}

La herramienta del curso me arroja el siguiente resultado:

El alto de la imagen no cambio, al rotar deberia cambiarse por el ancho original. Se esperaba 300, pero usted respondió 200
java.lang.ArrayIndexOutOfBoundsException: 299

Para guía dejo el enlace para el diagrama de clases:
https://cupiexamenes.virtual.uniandes.edu.co/media/web/modelos-mundo/15bc13c8598.jpg

Gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 349
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

como rotar una imagen 90 grados

Publicado por Andrés (340 intervenciones) el 12/02/2018 21:21:11
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//O(MN)
public void rotar90ALaDerecha() {
 
	final int renglones = bitmap.length;
	final int columnas = bitmap[0].length;
 
	Color[][] bitmapRotado = new Color[columnas][renglones];
 
	for(int i = 0, j = renglones-1 ; i < renglones ; i++, j--) {
 
		for(int k = 0 ; k < columnas ; k++) {
 
			bitmapRotado[k][j] = bitmap[i][k];
 
		}
 
	}
 
	bitmap = bitmapRotado;
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

como rotar una imagen 90 grados

Publicado por jhon james (4 intervenciones) el 12/02/2018 21:30:41
He modificado el código de la manera en que tu lo haces, sin embargo sale este error:

El alto de la imagen no cambio, al rotar deberia cambiarse por el ancho original. Se esperaba 300, pero usted respondió 200
java.lang.ArrayIndexOutOfBoundsException: 299
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 349
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

como rotar una imagen 90 grados

Publicado por Andrés (340 intervenciones) el 12/02/2018 21:38:32
raro, porque si rota:

Screenshot-from-2018-02-12-14-51-13

la imagen la escribes y de ahí obtiene las longitudes o usas getters para obtener las mismas?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

como rotar una imagen 90 grados

Publicado por jhon james (4 intervenciones) el 12/02/2018 22:27:21
Si es bastante raro yo creo que es esa herramienta la que me da el error, en si no lo estoy usando en un IDE es un curso y ellos proporcionan una herramienta para compilar, pero me sale ese error.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar