Documentaciónrotar(M, alfa)

rotar(M,α)\texttt{rotar}(M, \alpha)

Nombre

rotar - Rota una matriz por un angulo arbitrario.

Sinopsis

out = matrices.rotar(M, alfa)

Descripcion

Rota una matriz numerica M por un angulo alfa expresado en grados y devuelve una nueva matriz con el resultado.

Esta version usa interpolacion nearest-neighbor (vecino mas cercano), priorizando simplicidad y velocidad por encima de la calidad visual.

Comportamiento

  • Interpreta alfa en grados.
  • Calcula un nuevo tamano para que la matriz rotada entre completa.
  • Retorna una MATRIZ nueva; las celdas sin mapeo valido quedan en 0.

Funciones API relacionadas

  • matrices.rotar90_horario()
  • matrices.rotar90_antihorario()
  • matrices.rotar180()
  • matrices.transpuesta()

Parámetros

ParámetroTipoDescripción
MMATRIZMatriz a ser rotada.
alfaNUMERICOAngulo de rotacion en grados; en formulas se representa como α\alpha.

Valor de retorno

MATRIZ - Nueva matriz R con M rotada por α\alpha.

Detalles:

  • El tamano de R se calcula para que entre la matriz rotada completa.
  • Por eso normalmente cambia el ancho/alto respecto a M.
  • Los pixeles que no mapean a una coordenada valida en M quedan en 0.

Ejemplo

ejemplo.blox
INCLUIR "matrices.api"

FUNCION PRINCIPAL
INICIO

	MATRIZ matriz[2][3], R[][]

	matriz = [[1, 2, 3], 
			  [4, 5, 6]]

	matrices.imprimir(matriz)


	// Rotación de una matriz M por un ángulo arbitrario (en grados).
	// Se usa interpolación nearest-neighbor.
	// Devuelve una nueva matriz rotada.	
	// Puede mejorarse el algoritmo para angulos arbitrarios como 17.2 grados
	//
	R = matrices.rotar(matriz, 45)
	matrices.imprimir(R)	


FINAL