Transformações de Visualização 2D: Window-to-Viewport Antonio L. Bajuelos Departamento de Matemática Universidade de Aveiro 1 Transformações de Visualização 2D Introdução A visualização de uma imagem dum modelo envolve o mapeamento das coordenadas dos pontos e das linhas que o constituem nas coordenadas apropriadas do dispositivo ou da estação de trabalho, onde a imagem irá ser visualizada. Isto é feito através de transformações conhecidas por transformações de visualização Utilizaremos as seguintes designações: Sistema de coordenadas do mundo real (word coordinate system, WCS) Sistemas de coordenadas da ecrã (physical device coordinate system, PDCS) 2 Transformações de Visualização 2D Window--to Window to--Viewport. Viewport. Definições Window (janela): área rectangular visível no sistema de coordenadas mundo Viewport: área rectangular visível no sistema de coordenadas do ecrã Precisamos portanto de uma transformação que converta as primitivas em coordenadas do sistema mundo em coordenadas do sistema ecrã. Transformação Windows to Viewport 3 Transformações de Visualização 2D Window--to Window to--Viewport (W (W--toto-V) Uma forma prática de efectuar a transformação (W W-to to--V) é especificando una região rectangular em WCS (Windows) e uma região rectangular correspondente em PDCS (Viewport) Se o window e a viewport não possuem a mesma razão largura/altura, uma escala não uniforme é realizada. 4 Transformações de Visualização 2D Window--to Window to--Viewport (cont (cont... ...)) Outro ponto é que pode-se ter múltiplas PDCS de uma mesma WCS WCS, o que é mostrado na figura a seguir 5 Transformações de Visualização 2D Window--to Window to--Viewport (cont (cont... ...)) O problema: Dada uma janela (window) e uma porta de visão, qual é a matriz de transformação (MT) que mapeia a janela em WCS, na porta de visão em PDCS? Em princípio a MT pode ser desenvolvida como uma transformação composta por três passos: I. Uma translação da janela para o origem do WCS. II. A seguir o tamanho da janela é escalonado para ser igual ao tamanho da porta de visão III. Finalmente, a translação é usada para posicionar a porta de visão 6 Transformações de Visualização 2D Window--to Window to--Viewport (cont (cont... ...)) Os três passos da transformação: 7 Transformações de Visualização 2D Window--to Window to--Viewport (cont (cont... ...)) A matriz global da transformação: u max − u min v max − v min M T = T ( u min , v min ). S ( , ) .T (− x min ,− y min ) x max − x min y max − y min 8 Transformações de Visualização 2D Window--to Window to--Viewport (cont (cont... ...)) A matriz global da transformação: u max − u min v max − v min M T = T ( u min , v min ). S ( , ) .T (− x min ,− y min ) x max − x min y max − y min u max − u min ( 1 0 umin x max − x min = 0 1 v min . 0 0 0 1 0 ( ) 0 v max − v min y max − y min 0 0 ) 1 0 − x min . 0 1 − y min 0 0 0 1 1 ( ) 9 Transformações de Visualização 2D Window--to Window to--Viewport (cont (cont... ...)) A matriz global da transformação: 10 Transformações de Visualização 2D Window--to Window to--Viewport (cont (cont... ...)) Exemplo de transformação (300, 200) (370, 160) (10, 10) (0, 0) World coordinates (“window”) umax − u min ( x max − x min M T= 0 0 0 v max − v min y max − y min 0 − x min . − y min Display coordinates (“viewport”) u max − u min x max − x min v max − v min= y max − y min 1 +u min +v min )( ) 5 6 = 0 0 0 4 3 0 25 3 40 − 3 1 − 11 Transformações de Visualização 2D Window-to Windowto--Viewport Exercício:: Exercício 1. Determine a matriz global da transformação window-to-viewport que mapeia uma janela com canto inferior esquerdo em (1,1) e cujo canto superior direito está em (3,5) em: (a) um enquadramento que é o próprio ecrã normalizado. (b) um enquadramento que tem o canto inferior esquerdo em (0,0) e o canto superior direito em (½,½) (a) 1 2 N = 0 0 0 1 4 0 1 − 2 1 − 4 1 (b) 1 4 N = 0 0 1 0 − 4 1 1 − 8 8 0 1 12