2011-03-08 16 views
6

¿El .NET framework proporciona una buena manera de rotar una matriz de píxeles? Para ser más claro, no solo estoy buscando una forma de rotar una imagen. En su lugar, quiero rotar la matriz de píxeles subyacente sobre la que se basa la imagen, de modo que tenga acceso a la matriz modificada. Prefiero no implementar un algoritmo de rotación o ajustar otra biblioteca si el .NET Framework ya proporciona una buena manera de hacerlo. Necesito poder soportar cualquier rotación, no solo 90/180/270/etc. rotaciones, que serían simples de implementar.¿Cuál es una buena manera de rotar una matriz de píxeles?

He pensado en utilizar una de las clases de imagen que admite este tipo de rotación y acceder posteriormente a la matriz modificada. No estoy seguro si esta es una buena idea en primer lugar y tampoco estoy seguro de qué clase de imagen sería la mejor opción para esto. Hasta ahora no he tenido mucha suerte en encontrar una clase o combinación de clases que apoye las rotaciones que necesito y permite el acceso a la matriz de píxeles.

Actualización:

estoy empezando a pensar que o bien la pregunta equivocada o la pregunta correcta mal. Si entiendo lo que Cosmin quiso decir acerca del uso correcto de la clase Matrix, no creo que esto funcione para lo que en realidad estoy tratando de hacer. Trataré de explicar mejor mi problema.

Básicamente, tengo una matriz de datos 2D y quiero rotarla. Lo que quiero decir con esto es que quiero que los valores de los elementos se roten a los elementos apropiados en función de la rotación.

Por ejemplo:

----------- 
|A|A|A|A|A| 
----------- 
|B|B|B|B|B| 
----------- 
|C|C|C|C|C| 
----------- 

Si tuviera que girar esta matriz alrededor del elemento central de 90 grados a la izquierda, que debería terminar con algo como esto:

----------- 
| |A|B|C| | 
----------- 
| |A|B|C| | 
----------- 
| |A|B|C| | 
----------- 

Por desgracia, no tengo para admitir cualquier rotación, no solo rotaciones de 90 grados, lo que significa que se necesita un algoritmo de rotación más complicado, ya que los índices de los elementos girados no siempre serán enteros y pueden superponerse también. Esto parece un problema que probablemente se haya resuelto en el campo de los gráficos por computadora, lo que me llevó a formular la pregunta de la manera en que lo hice.

+0

¿Por qué necesita el acceso a la matriz de píxeles? – Justin

+0

Pensé en incluir esto en mi publicación original, pero sentía que había una buena posibilidad de que condujera a respuestas fuera de tema/equivocadas a mi pregunta. Yo puedo haber estado equivocado. Básicamente, presento varias vistas de estos datos, uno de los cuales es una vista ASCII. Los datos son de naturaleza geográfica y debo proporcionar al usuario vistas orientadas de cierta manera, por lo que necesito rotar los datos antes de intentar representarlos como una imagen ASCII. – foven

+0

Quizás la especificación de una matriz de píxeles fue una mala idea, ya que si pudiera rotar cualquier matriz 2D en un ángulo arbitrario, esto probablemente resolvería mi problema. Parece muy probable que dicho algoritmo vaya a estar relacionado con gráficos de computadora, lo que me llevó a formular la pregunta de la forma en que lo hice. – foven

Respuesta

Cuestiones relacionadas