¿Está utilizando la biblioteca .Net donde especifica la acción de una transformación en vectores que representan la esquina superior derecha, superior izquierda e inferior izquierda de la imagen?
Acabo de terminar de escribir una biblioteca para manejar exactamente esto.
Si comprende las matrices, simplemente modele su transformación usando una matriz general 2 × 2 A para rotar, hacer zoom, etc. y una matriz T 2 × 1 que representa la traducción, es decir
[x ‘, y’] = A * [x, y] + T.
- ¿Cómo se aplica la geometría cartesiana?
- ¿Cuál es el área de superficie lateral?
- Me estoy preparando para Inmo. ¿Puede alguien guiarme sobre cómo preparar la geometría ya que es mi punto débil?
- Cómo determinar el área de superficie de un trapecio
- ¿Cuál es el área de una parcela si las medidas de cuatro lados (en pies) son 33, 94, 81 y 36?
Luego, para convertir esto en algo que .Net comprenda, simplemente aplique esta misma transformación a los vectores que definen dónde van la derecha superior, la derecha superior y la izquierda inferior, y alimente los vectores resultantes en la lista de puntos en:
g.DrawImage (bmp, destinationPoints);
(g es un objeto gráfico, bmp es el mapa de bits, los puntos de destino son las coordenadas x e y de su vector transformado).
Hacer este tipo de cosas a la inversa es mucho más difícil (de ahí mi biblioteca), espero que no sea necesario.