Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
y
x
t
t
y
x
y
x
1 0
0 1
Traslacin
Esta operacin se usa para mover un objeto o grupo de
objetos de manera lineal a una nueva ubicacin en el espacio
bidimensional.
Trasladar un objeto una distancia t
x
en x y una distancia t
y
en y se
expresa como:
y
x
t y y
t x x
+ =
+ =
4
Silvia Castro UNS DCIC - 2007
Transformaciones Geomtricas en 2D
Escalado
Es una transformacin que permite cambiar el tamao o
la proporcin de un objeto o grupo de objetos. Hay escalados
proporcionales ynoproporcionales.
Escalar unobjeto ene
x
segn xyene
y
segn y seexpresa como:
y
x
e
e
y
x
y
x
0
0
y e y
x e x
y
x
=
=
y
x a
y
x
1 0
1
y y
ay x x
=
+ =
5
Silvia Castro UNS DCIC - 2007
Transformaciones Geomtricas en 2D
Rotacin
Esta transformacin geomtrica se usa para mover un
objeto ogrupo deobjetos alrededor deunpunto.
Rotar unobjeto unngulo ensentido horario se expresa como:
y
x
y
x
cos sin
sin cos
cos sin
sin cos
y x y
y x x
+ =
=
Silvia Castro UNS DCIC - 2007
Transformaciones Geomtricas en 2D
La matriz de rotacin tiene ciertas
propiedades
y
x
y
x
cos sin
sin cos
y
x
t
t
y
x
y
x
*
1 0
0 1
y
x
e
e
y
x
y
x
*
0
0
y
x
y
x
*
cos sin
sin cos
podemos escribir cada punto transformado como:
p =p+T
p =Ep
p =Rp
Transformaciones Geomtricas en 2D
Silvia Castro UNS DCIC - 2007
Transformaciones Geomtricas en 2D
Qu ocurre cuando queremos realizar una determinada
transformacin conrespecto aunpunto cualesquiera?
Supongamos que queremos rotar 90 grados con respecto al punto
(1.5,5)
8
Silvia Castro UNS DCIC - 2007
Transformaciones Geomtricas en 2D
No podemos aplicar las frmulas que vimos
directamente ya que definen rotaciones con
respecto alorigen.
Cmo se ubicara la casita si aplicamos la transformacin que
vimos?
Qu pasos debemos seguir para
lograr nuestro objetivo?
Silvia Castro UNS DCIC - 2007
1
*
1 0 0
1 0
0 1
1
y
x
t
t
y
x
y
x
Escribimos las transformaciones como:
Estamos trabajando en coordenadas homogneas.
As podemos escribir cada punto como:
p =Tp
p =Ep
p =Rp
1
*
1 0 0
0 0
0 0
1
y
x
e
e
y
x
y
x
1
*
1 0 0
0 cos sin
0 sin cos
1
y
x
y
x
Transformaciones Geomtricas en 2D
9
Silvia Castro UNS DCIC - 2007
podemos aplicar sucesivas transformaciones a un punto concatenando las
matrices de transformacin, incluida la traslacin. Para responder a la
pregunta:
Al poder escribir cada punto como:
p =Tp
p =Ep
p =Rp
p =T
1
pp=Rp p=T
1
p
p=T
1
R p
p=T
1
R T
1
p
=
min
min max
min max
min
min max
min max
XW
XW XW
XV XV
XV x
XW XW
XV XV
x
w v
min max
min
min max
min
YW YW
YW y
YV YV
YV y
w v
( ) B Ax AXW XV Ax x
w w v
+ = + =
min min
15
Silvia Castro UNS DCIC - 2007
La transformacin del mundo al viewport se hace
habitualmente en dos etapas: del mundo al espacio de clipping
y de ste al espacio de la pantalla.
Transformacin del mundo al viewport
Silvia Castro UNS DCIC - 2007
OpenGL brinda una funcin para establecer la transformacin del Viewport
Transformacin del mundo al viewport
16
Silvia Castro UNS DCIC - 2007
Clipping
Es el proceso de determinar qu primitivas y partes de primitivas
caen dentro del volumen de clipping definido por el programa de
aplicacin.
Generalmente, cualquier proce-
dimiento que identifica aquellas
porciones de una escena que
estn dentro o fuera de una
regin especificada se
denomina algoritmo declipping.
La regin contra la cual se
clipea un objeto se denomina
ventana declipping.
Silvia Castro UNS DCIC - 2007
Las primitivas que caen dentro de la ventana de clipping son
aceptadas para su posteriorrenderizacin.
Las primitivas que no caen dentro de la ventana de clipping son
rechazadas.
Lasprimitivas que estn slo parcialmente dentro delaregin devista
deben ser recortadas de modo tal que cualquier parte de las mismas
que est fuera delaregin searemovida.
Clipping
17
Silvia Castro UNS DCIC - 2007
Consideraremos algoritmos para elclippingdelossiguientes tipos de
primitivas:
- Clippingdepuntos
- Clippingderectas
- Clippingdepolgonos
- Clippingdecurvas
El clipping de rectas y polgonos son componentes estndar de la
mayora de los paquetes grficos. Los objetos curvos se aproximan
con lneas rectas y polgonos planos a los que se aplican los
algoritmos declippingderectas ypolgonos.
Clipping
Silvia Castro UNS DCIC - 2007
Silaprimitiva es unpunto:
Eneste caso sabemos que si severifica que:
elpunto est dentro delaventana;si no,est fuera delamisma.
xmin <x<xmax ymin <y<ymax
Clipping
18
Silvia Castro UNS DCIC - 2007
tenemos las siguientes posibilidades:
- Lneas que estn completamente dentro delaventana
- Lneas que estn completamente afuera delaventana
- Lneas que intersectan laventana
Silaprimitiva es una lnea:
Clipping
Silvia Castro UNS DCIC - 2007
Elalgoritmo declippingdebe:
-Identificar y dibujar las lneas que estn completamente dentro de la
ventana (AB).
- Identificar ydescartar las lneas que estn completamente afuera dela
ventana (GH,EF).
- Encontrar las intersecciones de las lneas que estn parcialmente
dentro de la ventana y dibujar las secciones de las mismas que estn
dentro delaventana (IJ,CD).
Clipping
19
Silvia Castro UNS DCIC - 2007
Para
Identificarydibujarlaslneasqueestncompletamentedentrodelaventana.
Identificarydescartarlaslneasqueestncompletamenteafueradelaventana.
Encontrar las intersecciones de las lneas que estn parcialmente dentro de la
ventanaydibujarlasseccionesdelasmismasqueestndentrodelaventana.
necesitamos las representaciones matemticas de esas rectas y de la
ventana.
Por fuerza bruta podramos resolver ecuaciones simultneas usando la
ecuacin delarectapara lamisma (y=mx +b)yloscuatro lados dela
ventana.
Problemas:
- Lafrmula slo maneja lneas infinitas
- Nomaneja lneas verticales
Clipping
Silvia Castro UNS DCIC - 2007
Paralalnea utilizaremos laecuacin paramtrica ya que es adecuada
para unsegmento derecta:
x = x
0
+ t(x
1
x
0
) 0 <t <1
y = y
0
+ t(y
1
y
0
)
p(t) = p
0
+ t(p
1
p
0
)
Clipping
20
Silvia Castro UNS DCIC - 2007
Algoritmo de Clipping de Cohen-
Sutherland
( 2D)
Silvia Castro UNS DCIC - 2007
Divideelplano en9regiones:
Ventana
Algoritmo de Cohen-Sutherland
21
Silvia Castro UNS DCIC - 2007
Paraidentificar rpidamente las lneas que estn dentro yfuera delaventana,
les asigna un cdigo de regin de 4 bits a cada uno de los puntos extremos
delsegmento derecta
Losbitssonpuestos en1(uno)deacuerdo a:
bit1punto porarriba delaventana
bit2punto pordebajo delaventana
bit3punto aladerecha delaventana
bit4punto alaizquierda delaventana
Cdigo
Algoritmo de Cohen-Sutherland
Silvia Castro UNS DCIC - 2007
1001 1000 1010
0001 0010
0101 0110 0100
0000
SiCdigo1=0yCdigo2=0
entonces
elsegmento delnea est dentro delaventana
sino
sino
si (Cdigo1andCdigo2)0
entonces
elsegmento delnea est fuera delaventana
nosabemos
Algoritmo de Cohen-Sutherland
22
Silvia Castro UNS DCIC - 2007
Entoncesconsideramostrescasos
Una lnea es trivialmente aceptada si los cdigos de ambos puntos
extremosson 0000.
Unalneapuedesertrivialmente rechazadasilaoperacinAND bit abit
delos cdigos de lospuntosextremos NO es 0000.
Deotromodo,serequierems procesamiento yaquelalneanopuede
serni trivialmente aceptada nitrivialmenterechazada.
Algoritmo de Cohen-Sutherland
Silvia Castro UNS DCIC - 2007
Ejemplos:
ABestrivialmenteaceptadaporque
A:0000
B:0000
CDestrivialmenterechazadaporque
D:0110
C:0101
AND=0100
1001 1000 1010
0001 0010
0101 0110 0100
0000
A
B
C
D
Algoritmo de Cohen-Sutherland
23
Silvia Castro UNS DCIC - 2007
Ejemplos:
GH : es clipeada contra el lmite sup
para obtener as H
HH es rechazada,
GH necesita ms procesamiento(clip
con los bordes superior, inferior,
derecho y luego izquierdo de acuerdo a
como se tienen en cuenta los bordes),
clipeado contra el borde izquierdo se
obtiene G
GG es rechazado,
GH es trivialmente aceptado.
EF necesita ms procesamiento: (no puede ser trivialmente
aceptada o rechazada)
F: 1000 AND E: 0001 = 0000
G
1001 1000 1010
0001 0010
0101 0110 0100
0000
A
B
C
D
G
H
H
E
E
F
Algoritmo de Cohen-Sutherland
Silvia Castro UNS DCIC - 2007
Aplicamos el algoritmo de clipping sobre un segmento de recta. Si ste no puede
aceptarse o rechazarse trivialmente, debemos subdividirlo en dos segmentos;
entonces aplicamos elalgoritmo declippingsobre cada uno deestos segmentos.
Sedebe convenir unorden para chequear cada uno deloslados delaventana:
arriba abajo derecha izquierda
Para realizar la subdivisin en dos
segmentos se calcula el punto de
interseccin; el lado contra el que se
clipea fija o bien x o bien y, que puede
entonces sustituirse enlaecuacin dela
recta
Loscdigos sepueden usar para elegir
ellado delaventana que secruza conel
segmento de recta: si los cdigos
difieren en el bit del lado, los puntos
extremos deben cruzar ese lado.
G
1001 1000 1010
0001 0010
0101 0110 0100
0000
A
B
C
D
G
H
H
E
E
F
Algoritmo de Cohen-Sutherland
24
Silvia Castro UNS DCIC - 2007
Algoritmo Cdigo
DE: p (coord. x,y)
Ventana (coord. xmin,ymin,xmax,ymax)
DS: codigo
codigo centro
si x<xmin
entonces
codigo codigo or izquierda
sino
si x>xmax
entonces
codigo codigo or derecha
si y<ymin
entonces
codigo codigo or abajo
sino
si y>ymax
entonces
codigo codigo or arriba
Suponemos que el cdigo
es una constante:
centro 0000
izquierda 0001
derecha 0002
abajo 0004
arriba 0008
Algoritmo de Cohen-Sutherland
Silvia Castro UNS DCIC - 2007
Algoritmo Descartar Segmento
DE: codigo
p0(coord x0,y0), p1(coord x1,y1)
Ventana (coord xmin,ymin,xmax,ymax)
DS: p (coord x,y)
si (codigo and arriba)<>0
entonces
x = x0 + (x1 x0) * (ymax y0)/(y1 y0); y = ymax;
sino
si (codigo and abajo)<>0
entonces
x = x0 + (x1 x0) * (ymin y0)/(y1 y0); y = ymin;
sino
si (codigo and derecha)<>0
entonces
y = y0 + (y1 y0) * (xmax x0)/(x1 x0); x = xmax;
sino
si (codigo and izquierda)<>0}
entonces
y = y0 + (y1 y0) * (xmin x0)/(x1 x0); x = xmin;
Algoritmo de Cohen-Sutherland
25
Silvia Castro UNS DCIC - 2007
Algoritmo Clipping
DE:p0(coord.x0,y0),p1(coord.x1,y1)
Ventana (coordenadas xmin,ymin,xmax,ymax)
DS:p0(coordenadasx0,y0),p1(coordenadasx1,y1)
SeDibuja (booleano)
Cdigo(p0,Ventana,codigo0);Cdigo(p1,Ventana,codigo1);
si (codigo0=centro)and(codigo1=centro)
entonces
SeDibuja verdadero
sino
si (codigo0andcodigo1)<>centro
entonces
SeDibuja falso
sino
si codigo0<>centro
entonces
Descartar Segmento (codigo0,p0,p1,p)
Clipping(p,p1,Ventana,SeDibuja);p0p
sino
Descartar Segmento (codigo1,p1,p0,p)
Clipping(p0,p,Ventana,SeDibuja);p1p
Algoritmo de Cohen-Sutherland
Silvia Castro UNS DCIC - 2007
El clipping de polgonos no puede hacerse con los algoritmos de
clippingdelneas ya que noseobtiene unrea cerrada.
Elclippingdelneas individuales conducea:
Algoritmo de Sutherland-Hodgeman
26
Silvia Castro UNS DCIC - 2007
Polgonodeentrada:<1,2,3> donde 12,23,31sonlados
Elclippingdepolgonos debe hacerse demodo tal que seobtenga el
polgono:
Dadoelpolgono que seve enlafigura:
Polgonodesalida:<1,2,3,4,5,6>
Algoritmo de Sutherland-Hodgeman
Silvia Castro UNS DCIC - 2007
Podemos hacer lo siguiente: por cada pixel en el polgono, decidir si
est dentro del volumen de vista. Esto funciona, pero es demasiado
ineficiente ya que hace laconversin scandetodo elpolgono aunque
slo dibuja las partes visibles.Esteproceso es denominado scissoring
(clippingonthefly durante laconversin scan).
Algoritmo de Sutherland-Hodgeman
27
Silvia Castro UNS DCIC - 2007
El algoritmo de Sutherland-
Hodgeman procesa cada polgono,
en orden, con cada uno de los
bordes.
Izquierdo Derecho Abajo Arriba
Algoritmo de Sutherland-Hodgeman
Silvia Castro UNS DCIC - 2007
Paracada uno delosbordes delaventana,seprocesan todos losvrtices
del polgono; se genera un conjunto de vrtices que se utilizar con el
prximo borde.
En cada paso del procesamiento, pueden presentarse 4 casos posibles
cuando seva deunpunto extremo delsegmento delnea alotro.
Afuera Adentro
Guardar 1,2
Adentro Adentro
Guardar 3
Adentro Afuera
Guardar 4
Afuera Afuera
No guardar nada
Elclippingdelpolgono 1234conelborde izquierdo delaventana genera
elpolgono 1234.
Algoritmo de Sutherland-Hodgeman
28
Silvia Castro UNS DCIC - 2007
Entrada
Salida
Izquierdo Derecho Inferior Superior
{I
4
, I
2
}
3
I
3
1
I
1
{I
2
,3}
{I
4
, I
2
}
3
I
3
1
2
3
1
I
1
{I
2
,3}
Ejemplo
Algoritmo de Sutherland-Hodgeman
Silvia Castro UNS DCIC - 2007
El algoritmo de Sutherland-Hodgeman clipea correctamente los polgonos
convexos.Lospolgonoscncavoslosclipea conlneasextraas:
Esto ocurre porque los polgonos cncavos pueden generar mltiples reas
pero elalgoritmo slo generauna lista devrtices deentrada.
Enelejemplo,elpunto 1 seune alpunto 6alolargodelborde izquierdo de
laventana.
Algoritmo de Sutherland-Hodgeman
29
Silvia Castro UNS DCIC - 2007
La Bounding Box ms simple (o extent) es el menor rectngulo,
alineado conlaventana, que contiene al polgono.Se puede evitar el
clipeado detallado depolgonos complejos chequeando si labounding
box est completamente dentro ocompletamente fuera delaventana.
Siest parcialmente adentro,es necesario unclipping detallado.
Clipping de otras primitivas
Silvia Castro UNS DCIC - 2007
Para curvas y superficies es dificultoso encontrar algoritmos
generales.
Elproblema seevita aproximando las curvas por segmentos delneas
y las superficies mediante polgonos planos y clipeando estas
primitivas deacuerdo alovisto.
Clipping de otras primitivas
30
Silvia Castro UNS DCIC - 2007
Del mundo a la pantalla
Del mundo 2D a la pantalla
E. del Objeto E del Mundo E del Viewport
Qu tareas se llevan a cabo dentro de cada Espacio? Qu
transformaciones? Cules son las transformaciones que
permiten pasar de un espacio al otro?
E de Clipping
Silvia Castro UNS DCIC - 2007
Bibliografa
ACMSIGGRAPHProceedings
Angel, Edward, Interactive Computer Graphics. A top-down approach with
OpenGL,AddisonWesley,1997,1rstEdition.
Foley, J., van Dam, A., Feiner, S. y Hughes, J., Computer Graphics.
PrinciplesandPractice,AddisonWesley,1992,2ndEdition.
Hearn, D., Baker, M.P., Computer Graphics, C Version, Prentice Hall Inc.,
1997,2ndEdition.
31
Silvia Castro UNS DCIC - 2007