[C con Clase] Transformaciones y mapeo

Jose del Castillo mecauni_m4 en yahoo.com
Lun Oct 21 18:24:06 CEST 2013


Ok gracias es lo que buscaba.



El Domingo, 20 de octubre, 2013 8:35 P.M., "Davidson, Steven" <srd4121 en njit.edu> escribió:
 
Hola José,


2013/10/20 Jose del Castillo <mecauni_m4 en yahoo.com>

Hola el capitulo 28 del curso de WINAPI se me hace un poco dificil, tengo dos preguntas sencillas aver si me ayudan:
>1. ¿Como puedo hacer para que el eje y apunte hacia arriba? osea no quiero desplazarlo ni nada de eso, solo quiero que en vez de apuntar hacia abajo apunte arriba.

Si quieres aplicar este criterio a todas las operaciones gráficas, entonces puedes cambiar el modo de mapeo (o de conversión). Sospecho que te interesa 'MM_TEXT', pero con los valores positivos de la coordenada Y yendo hacia arriba. Podemos hacer esto,

Size size;

SetMapMode( hdc, MM_TEXT );  // No hace falta, ya que es el que se establece por defecto
SetMapMode( hdc, MM_ANISOTROPIC );

GetViewportExtEx( hdc, &size );
SetViewportExtEx( hdc, size.cx, -size.cy, NULL );

Eso sí, el origen: (0,0) seguiría estando en la esquina superior izquierda. Sería mejor cambiar el origen para que esté en la esquina inferior izquierda.


Otra forma es crear una transformación de escala con un valor negativo para crear reflejo. La matriz que te interesa es:

( 1  0  0 )
( 0 -1  0 )

( 0  0  1 )


Esto implica que tendrías que usar valores negativos, porque no hemos cambiado el origen, que todavía estaría en la esquina superior izquierda.

2. Al hacer transformaciones y mapeos estos son permanentes, o se pierden cada vez que se libera el HDC?? 

Se basan en el DC indicado. Si miras las funciones, verás que siempre requieren el HDC. También ten presente que el mapeo sólo entra en juego cuando usamos coordenadas lógicas. Varias funciones del API de MS-Windows involucran coordenadas del dispositivo, y por tanto, no toma en cuenta los mapeos establecidos.


Espero haber aclarado un poco el tema.

Steven


_______________________________________________
Lista de correo Cconclase Cconclase en listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20131021/04a8e4f6/attachment.html>


Más información sobre la lista de distribución Cconclase