You are on page 1of 83

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Captulo 3: Modelado Geomtrico

Si la normal al plano de proyecciones es (dx, dy, dz), requerimos que |dx| = |dy| = |dz| o
dx = dy dz. Slo hay ocho direcciones (una en cada octante) que satisfacen esta
condicin. En la figura 6.8 se muestra la construccin de tina proyeccin isomtrica a lo
largo de una de estas direcciones, (1, -1, -1),
Plano de!
proyeccin
y
Proyector

Normal al!
plano de !
proyeccin

z
Fig. 3.43.Construccin de una proyeccin isomtrica de un cubo.

La proyeccin isomtrica tiene una til propiedad: los tres ejes principales tienen la
misma reduccin frontal, lo que permite que las mediciones sobre los ejes se realicen con la
misma escala ( de aqu proviene el nombre: iso, que quiere decir igual y mtrico de
medicin). Adems, las proyecciones de los ejes principales forman ngulos iguales de 120
entre s.

Identificacin de superficies y lnea visible


Tambin es posible aclarar las relaciones de profundidad en un despliegue de armazn
al identificar de alguna manera las lneas visibles. el mtodo ms sencillo consiste en realzar
las lneas visibles o desplegarlas en un color diferente. Otra tcnica que se utiliza en forma
comn para los diseos de ingeniera, es el despliegue de reas no visibles como lneas de
rayas.
Otro planteamiento consiste en eliminar no slo las lneas visibles, como en las figuras
3.44 (b) y 3.44 (c). Pero al eliminar las lneas ocultas tambin se elimina la informacin
Graficacin
179

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Captulo 3: Modelado Geomtrico

acerca de la forma de las superficies traseras de un objeto. Estos mtodos de lnea visible
tambin identifican alas superficies visibles de los objetos.

(a)

(b)

(c)

Fig. 3.44.Las representacin en armazn de la pirmide en la


parte (a) no contiene informacin de profundidad para indicar
si la direccin de la vista es (b) hacia abajo desde una
posicin sobre el pice o (c) hacia arriba desde una posicin
abajo de la base.

Cuando se deben desplegar objetos con color o superficie sombreadas, aplicamos


procedimientos de representacin de superficie para las superficies visibles, de modo que se
oscurezcan las superficies ocultas. Algunos algoritmos de superficie visible establecen la
visibilidad pixel por pixel a lo largo del plano de vista; otros algoritmos determinan la
visibilidad para las superficies de un objeto como un todo.

3.3.Representacin tridimensional de objetos


Superficies de polgonos
La representacin de frontera que ms se utiliza para un objeto grfico tridimensional
es un conjunto de polgonos de superficie que encierran el interior del objeto. Muchos
sistemas grficos almacenan todas las descripciones de

objetos como

conjuntos de

polgonos de superficie. Esto facilita y acelera la representacin de superficie y el despliegue


de objetos, ya que todas las superficies se describen con ecuaciones lineales. Por esta
razn, con frecuencia nos referimos a las descripciones de polgonos como objetos grficos
estndar.

Graficacin
180

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Captulo 3: Modelado Geomtrico

En algunos casos, una representacin de polgonos es la nica disponible, pero muchos


paquetes permiten que los objetos se describan como otros esquemas, como superficies de
spline, que se convierten en representaciones de polgonos para el procesamiento.
Una

representacin

de

polgono

para

un

poliedro

define

con

precisin

las

caractersticas de superficie del objeto. Pero para otros objetos, las superficies se teselan
(o tejan) para producir la aproximacin del enlace polgonos. En la figura 3.45, la superficie
de un cilindro se representa como un enlace de polgonos. Tales representaciones son
comunes en las aplicaciones de diseo y modelado de slidos, ya que el contorno de
armazn se puede desplegar con rapidez para dar una indicacin general de la estructura de
la superficie.

Fig. 3.45.Representacin de estructura de alambre de un cilindro


con eliminacin de las lineas posteriores (ocultas).

Las representaciones realistas se producen al interpolar los patrones de sombreado a


lo ancho de las superficies de los polgonos para eliminar o reducir la presencia de fronteras
de aristas de polgonos. Y la aproximacin del enlace de polgonos a una superficie curva se
puede mejorar al dividir la superficie en facetas de polgonos ms pequeos.

Tablas de polgono
Especificamos una superficie de polgono con un conjunto de coordenadas de vrtice y
parmetros de atributos asociados. Conforme se da entrada a la informacin para cada
polgono, los datos se colocan en tablas que se van a utilizar en el subsecuente
procesamiento, despliegue y manipulacin de objetos en una escena.

Graficacin
181

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Captulo 3: Modelado Geomtrico

Las tablas de datos de polgonos se pueden organizar en dos grupos: tablas


geomtricas y tablas de atributos. Las tablas geomtricas de datos contienen las
coordenadas de vrtices y los parmetros para identificar a orientacin espacial de las
superficies del polgono.
La informacin de los atributos para un objeto incluye los parmetros que especifican
el grado de transparencia del objeto y las caractersticas de reflectividad y textura de su
superficie.
Una organizacin conveniente para almacenar los datos geomtricos es crear tres
listas: una tabla de vrtices, una tabla de aristas y una tabla de polgonos. Los valores de las
coordenadas para cada vrtice en el objeto se almacenan en la tabla de vrtices. La tabla de
aristas contiene indicadores en la tabla de vrtices para identificar los vrtices para cada
arista del polgono.
La tabla de polgonos contiene indicadores en la tabla de aristas para identificar las
aristas para cada polgono. Este esquema se ilustra en la figura 3.46 para dos polgonos
adyacentes sobre la superficie de un objeto. Adems, a los objetos individuales y sus caras
de polgonos componentes se pueden asignar identificadores de objeto y de faceta para una
referencia fcil.
V1

E6

E1
E3

S1

S2

V5

V3
V2

E2

E5

E4

V4

Graficacin
182

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

TABLA DE

Captulo 3: Modelado Geomtrico

TABLA DE ARISTAS

TABLA DE SUPERFICIE DE

VRTICES

POLGONOS

V1: x1, y1, z1

E1: V1, V2

S1: E1, E2, E3

V2: x2, y2, z2

E2: V2, V3

S1: E3, E4, E5, E6

V3: x3, y3, z3

E3: V3, V1

V4: x4, y4, z4

E4: V3, V4

V5: x5, y5, z5

E5: V4, V5
E6: V5, V1

Fig. 3.46.Superficies de polgonos adyacentes, que se forman con


seis aristas y cinco vrtice y su representacin de tabla de
datos geomtricos.

Al listar los datos geomtricos en tres tablas, como en la figura anterior, se


proporciona una referencia conveniente a los componentes individuales (vrtices, aristas y
polgonos) de cada objeto. Tambin, el objeto se puede desplegar de manera eficiente al
utilizar los datos de la tabla de aristas para trazar las lneas de los componentes. Un orden
posible es emplear solo dos tablas: una de vrtices y una de polgonos. Pero este sistema
es menos conveniente y algunos aristas se pueden trazar dos veces.
Otra posibilidad es utilizar solo una tabla de polgonos pero esto duplica la informacin
sobre las coordenadas, ya que los valores explcitos de las coordenadas se listan para cada
vrtice en cada polgono. Tambin la informacin sobre las aristas se tendran que
reconstruir de las listas de vrtices en las tabla de polgonos
Podemos agregar informacin adicional a las tablas de datos de la figura anterior para
una extraccin ms rpida de la informacin Por ejemplo, podramos ampliar la tabla de
aristas para incluir ms indicadores en la tabla de polgonos de modo que las aristas
comunes entre los polgonos se pudieran identificar con mayor rapidez (figura 3.47). Esto
es en particular til para los procedimientos de representacin que deben variar con
suavidad el sombreado de la superficie a travs de las aristas de un polgono al siguiente. En

Graficacin
183

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Captulo 3: Modelado Geomtrico

forma similar, la tabla de vrtices se podra- expandir de manera que se haga una referencia
cruzada de los vrtices con las aristas correspondientes.
E1: V1, V2, S1
E2: V2, V3, S1
E3: V3, V1, S1, S2
E4: V3, V4, S2
E5: V4, V5, S2
E6: V5, V1, S2

Fig. 3.47.Tabla de aristas para las superficies de la figura anterior


expandidas para incluir apuntadores a la tabla de polgonos

La informacin geomtrica adicional que por lo general se almacena en las tablas de


datos incluye la inclinacin para cada arista y las extensiones de las coordenadas para cada
polgonos Al dar entrada a los vrtices podemos calcular las inclinaciones de las aristas y
rastrear los valores de las coordenadas para identificar los valores mnimo y mximo de x, y
y z para los polgonos individuales. Las inclinaciones de las aristas y la informacin sobre el
recuadro de entrelazado para los polgonos se necesitan en el procesamiento subsecuente,
por ejemplo, en la representacin de superficies. Las extensiones de las coordenadas
tambin se utilizan en algunos algoritmos de determinacin de superficie visible.
Ya que las tablas geomtricas de datos pueden contener extensas listas de vrtices y
aristas para los objetos complejos, es importante que se verifique la consistencia y la
totalidad de los datos. Cuando se especifican las definiciones de los vrtices,arista y
polgonos es posible, sobre todo en las aplicaciones interactivas, que se cometan ciertos
errores de captura que distorsionaran el despliegue del objeto. Mientras ms informacin se
incluya en las tablas de datos, ser ms fcil verificar los errores. Por tanto, la verificacin
de los errores es ms fcil cuando se utilizan tres tablas de datos (vrtices aristas y
polgonos) ya que este esquema proporciona la mayor cantidad de informacin. Algunas de
las pruebas que se pueden llevar a cabo mediante un paquete de graficacin son (1) que
Graficacin
184

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Captulo 3: Modelado Geomtrico

cada vrtice se lista como un extremo para dos aristas por lo menos, (2) que cada arista es
parte de un polgono por lo menos, (3) que cada polgono est cerrado, (4) que cada
polgono tiene por lo menos una arista compartida y (5) que si la tabla de aristas contiene
indicadores para los polgonos cada arista a la que se hace referencia mediante un indicador
de polgono tiene un indicador recproco hacia el polgono.

Ecuaciones de plano
Para producir un despliegue de un objeto tridimensional, debemos procesar la
representacin de los datos de entrada para el objeto a travs de varios procedimientos.
Estos pasos del procesamiento incluyen la transformacin de las descripciones de modelado
y de coordenadas mundiales a coordenadas de vista, despus a coordenadas de dispositivo;
la identificacin de las superficies visibles; y la aplicacin de los procedimientos de
representacin de superficie. Para algunos de estos procesos, necesitamos la informacin
acerca de la orientacin espacial de los componentes individuales de superficie del objeto.
Esta informacin se obtiene de los valores de las coordenadas de los vrtices y las
ecuaciones que describen los planos de los polgonos.
3.27.

Ax + By + Cz + D = 0

La ecuacin para una superficie de plano se puede expresar en la forma donde (x, y, z)
es cualquier punto en el plano y los coeficientes A, B, C y D son constantes que describen
las propiedades espaciales del plano. Podemos obtener los valores de A, B, C y D al resolver
un conjunto de tres ecuaciones de plano al utilizar los valores de las coordenadas para tres
puntos no colineales en el plano. Para este propsito podemos seleccionar tres vrtices
sucesivos de polgono (x1, y1, z1), (x2, y2, z2) y (x3, y3, z3) y resolver el siguiente conjunto de
ecuaciones lineales del plano simultneas para las relaciones A/D, B/D y C/D:

3.28.

(A / D)xk + (B / D)yk + (C / D)zk = 1


k = 1, 2, 3

La solucin para este conjunto de ecuaciones se puede obtener en forma de


determinante, utilizando la regla de Cramer, como

Graficacin
185

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Captulo 3: Modelado Geomtrico

1 y1
A = 1 y2
1 y3

3.29.

x1
C = x2
x3

z1
z2
z3

y1 1
y2 1
y3 1

x1 1 z1
B = x 2 1 z2
x 3 1 z3
x1
D = x2
x3

y1
y2
y3

z1
z2
z3

Al ampliar los determinantes, podemos escribirlos clculos para los coeficientes del
plano en la forma

A = y1 (z2 z3 ) + y2 (z3 z1 ) + y3 (z1 z2 )


B = z1 (x2 x3 ) + z2 (x3 x1 ) + z3 (x1 x2 )
3.30.

C = x1 (y2 y3 ) + x2 (y3 y1 ) + x3 (y1 y2 )


D = x1 (y2 z3 y3 z2 ) x2 (y3 z1 y1z3 ) x3 (y1z2 y2 z1 )

Conforme se da entrada en la estructura de datos del polgono a los valores de los


vrtices y otra informacin los valores para A, B, C y D se calculan para cada polgono y se
almacenan con los dems datos del polgono.
La orientacin en el espacio de la superficie de un plano se puede describir con el
vector normal para el plano,como se muestra en la figura anterior. Este vector normal de
superficie tiene los componentes cartesianos (A, B, C) donde los parmetros A, B y C son
los coeficientes de plano que se calculan en las ecuaciones 3.30.
Ya que por lo general manejamos superficies de polgonos que encierran el interior de
un objeto, necesitamos distinguir entre los dos lados de la superficie. El lado del plano que
da al interior del objeto se llama cara "interna" y el lado visible o de afuera es la cara
"externa". Si los vrtices del polgono se especifican en una
direccin opuesta a la de las manecillas del reloj cuando se ve el lado externo del plano
en un sistema de coordenadas del lado derecho, la direccin del vector normal ser de
adentro hacia afuera. Esto se demuestra para un plano de un cubo de unidad en la figura
siguiente.

Graficacin
186

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Captulo 3: Modelado Geomtrico

X
1

Fig. 3.48.La superficie sombreada de polgono del cubo unitario


tiene la ecuacin de plano x -1 = 0 y el vector normal N = (1,
0, 0)

Para determinar los componentes del vector normal para la superficie sombreada que
se muestra en la figura anterior, seleccionamos tres de los cuatro vrtices a lo largo de la
frontera del polgono. Estos puntos se seleccionan en direccin opuesta a las manecillas del
reloj al ver desde afuera el cubo hacia el origen. Las coordenadas para estos vrtices en el
orden seleccionado, se pueden utilizar en las ecuaciones 3.30 para obtener los coeficientes
del plano: A = 1, B =O, C = O, D = -1. De esta forma, el vector normal para este plano est
en la direccin del eje positivo de x.
Los elementos de la normal del plano tambin se pueden obtener al utilizar un clculo
vectorial de producto cruz. Una vez ms seleccionamos tres posiciones de vrtice VI, V2 y
V3, que se toman en orden opuesto a la direccin de las manecillas del reloj cuando se ve la
superficie de afuera hacia adentro en un sistema cartesiano del lado derecho. Al formar dos
vectores, uno de V1 a V2 y el otro de V1, a V3, calculamos N como el producto cruz de los
vectores:
3.31.

N = (v2 v1 ) (v3 v1 )

Graficacin
187

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Captulo 3: Modelado Geomtrico

Esto genera valores para los parmetros de plano A, B y C. De esta manera podemos
obtener el valor para el parmetro D al sustituir estos valores y las coordenadas para uno de
los vrtices del polgono en la ecuacin del plano 3.21 y despejar D. La ecuacin del plano
se puede expresar en la forma vectorial utilizando la normal N y la posicin P de cualquier
punto en el plano como
3.32.

NP = D

Las ecuaciones del plano se utilizan tambin para identificar la posicin de los puntos
espaciales con respecto de las superficies planas de un objeto. Para cualquier punto (x, y, z)
que no se encuentra en un plano con parmetro A, B, C, D, tenemos

Ax + By + Cz + D 0
Podemos identificar el punto como adentro o afuera de la superficie del plano de
acuerdo con el signo (negativo o positivo) de Ax + By + Cz + D:
si Ax + By + Cz + D < O, el punto (x, y, z) est adentro de la superficie
si Ax + By + Cz + D > O, el punto (x, y, z) est afuera de la superficie

Estas pruebas de desigualdad son vlidas en un sistema cartesiano del lado derecho,
siempre y cuando los parmetros del plano A, B, C y D se calculen utilizando los vrtices
seleccionados en un orden contrario al sentido de las manecillas del reloj cuando se ve la
superficie en una direccin de afuera hacia adentro. Por ejemplo, en la figura 3.48,cualquier
punto afuera del plano sombreado satisface la desigualdad x - 1 > O, en tanto que cualquier
punto adentro del plano tiene un valor de coordenada de x menor que 1,

Enlaces de polgono
Algunos paquetes de grficos proporcionan varias funciones de polgonos para el
modelado de objetos. Una superficie de plano sencilla se puede especificar con una funcin
como fillArea. Pero cuando las superficies de los objetos se deben tejer, es ms conveniente
especificar las facetas de la superficie con una funcin de enlace. Un tipo de enlace de
Graficacin
188

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Captulo 3: Modelado Geomtrico

polgonos es la secuencia de tringulos Esta funcin produce n - 2 tringulos conectados,


como se muestra en la figura siguiente, dadas las coordenadas para n vrtices.

Fig. 3.49.Hilera de tringulos que se forma con 11 tringulos, los


cuales conectan 13 vrtices.

Otra funcin similar es el enlace cuadriteral que genera un enlace de (n -1) por (m -1)
cuadrilaterales, dadas las coordenadas para una matriz, de vrtices de n por m. La figura
3.50 muestra 20 vrtices que forman un enlace de 12 cuadrilteros.

Fig. 3.50.Enlace cuadriteral que contiene 12 cuadriterales que se


construyen partir de una matriz de entrada de vrtices de 5
por 4.
Graficacin
189

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Captulo 3: Modelado Geomtrico

Cuando los polgono se especifican con ms de tres vrtices, es posible que no todos
los vrtices caigan en un plano. Esto se puede deber a errores numricos o a errores al
seleccionar las posiciones de las coordenadas para los vrtices. Una manera de controlar
esta situacin es simplemente dividir los polgono en tringulos. Otra estrategia que en
ocasiones se sigue es aproximar los parmetros de los planos A, B y C. Podemos realizar
esta operacin al promediar los mtodos o podemos proyectar el polgono en los planos de
las coordenadas. Al utilizar el mtodo de la proyeccin, tomamos A proporcional al rea de
la proyeccin del polgono en el plano de yz, B proporcional al rea de proyeccin en el
plano de xz y C proporcional al rea de proyeccin en el plano xy.
Los sistemas de graficacin de alta calidad por lo general modelan objetos con enlaces
de polgono y establecen una base de datos de informacin geomtrica y de atributos para
facilitar el procesamiento de las facetas del polgono. Los sistemas de presentacin de
polgonos implementados con hardware rpido se incorporan en esos sistemas con la
capacidad de desplegar desde cientos de miles hasta un milln o ms de polgonos
sombreados por segundo(por lo general tringulos), incluyendo la aplicacin de la textura de
superficies y los efectos especiales de iluminacin.

Lneas y superficies curvas


Los despliegues de lneas y superficies curvas tridimensionales se pueden generar a
partir de un conjunto de entrada de funciones matemticas que definen los objetos o de un
conjunto de puntos de datos especficos para el usuario. Cuando las funciones se
especifican, un paquete puede proyectar las ecuaciones de definicin para una curva hacia
el plano de despliegue y trazar las posiciones de pixel a lo largo de la trayectoria de la
funcin proyectada Para las superficies, con frecuencia se tesela una descripcin funcional
para producir una aproximacin de enlace de polgonos a la superficie. Por lo general, esto
se realiza con parches de polgono triangulares para asegurar que todos los vrtices de
cualquier polgono estn en un solo plano. Los polgonos especficos con cuatro o ms
vrtices tal vez no tengan todos stos en el mismo plano. Algunos ejemplos de superficies
de despliegue que se generan a partir de descripciones funcionales incluyen los cudricos y
supercudricos.

Graficacin
190

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Captulo 3: Modelado Geomtrico

Cuando un conjunto de puntos de coordenadas discretos se utiliza para especificar la


forma de un objeto, se obtiene una descripcin funcional que se adapte mejor a los puntos
designados de acuerdo con las restricciones de la aplicacin. Las representaciones de spline
son ejemplos de esta clase de curvas y superficies. Estos mtodos se utilizan por lo general
para disear formas nuevas de objetos, para digitalizar trazos y describir trayectorias de
animacin. Los mtodos de adaptacin de las curvas se utilizan tambin para desplegar
grficas de valores de datos al adaptar funciones especficas de curva al conjunto discreto
de datos, empleando tcnicas de regresin como el mtodo de mnimos cuadrados.
Las ecuaciones de curva y superficie se pueden expresar ya sea en forma paramtrica
o no paramtrica Para las aplicaciones de las grficas por computadora, por lo general, las
representaciones paramtricas son ms convenientes.

Superficies cuadrticas (cudricas)


Una clase de objetos que se utiliza con frecuencia son las superficies cudricas, que se
describen con ecuaciones de segundo grado (cuadrticas). Incluyen esferas, elipsoides,
toros, paraboloides e hiperboloides. Las superficies cudricas en particular las esferas y
elipsoides, son elementos comunes de las escenas grficas y es frecuente que estn
disponibles en los paquetes de grficos como primitivos de los cuales se pueden elaborar
objetos ms complejos.

Esfera
En las coordenadas cartesianas, una superficie esfrica con radio r que se centra en el
origen de las coordenadas se define como el conjunto de puntos (x, y, z) que satisfacen la
ecuacin
3.33.

x 2 + y2 + z 2 = r 2

Tambin podemos describir la superficie esfrica en forma paramtrica al utilizar los


ngulos de latitud y longitud:

Graficacin
191

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Captulo 3: Modelado Geomtrico

eje de las z

P = (x, y, z)

r
"

eje de las y

!
eje de las x
Fig. 3.51.Posicin de las coordenadas paramtricas (r, , ) sobre
la superficie de una esfera con radio r.


2
2
y = r cos sin ,
z = r sin
x = r cos cos ,

3.34.

La representacin paramtrica en las ecuaciones 3.34 proporciona un rango simtrico


para los parmetros angulares y . En forma alternativa, podramos despejar las
ecuaciones paramtricas al utilizar coordenadas esfricas estndar, donde el ngulo se
especifica como la colatitud (figura 3.52). Entonces, se define sobre el rango 0 ,
y con frecuencia se toma en el rango 0 < < 2 . Tambin podramos establecer la
representacin al utilizar los parmetros u y v definidos sobre el rango de 0 a 1 al sustituir
()=u y = 2 u.

Graficacin
192

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Captulo 3: Modelado Geomtrico

eje de las z

P
!

eje de las y

eje de las x
Fig. 3.52.Parmetros de coordenadas esfricas (r, , ), al utilizar
la colatitud para el ngulo .

Elipsoide
Una superficie elipsoide se puede describir como una extensin de una superficie
esfrica donde los radios en tres direcciones mutuamente perpendiculares pueden tener
diferentes valores (figura 3.53). La representacin cartesiana para los puntos sobre la
superficie de un elipsoide que se centra en el origen es
Z
rz

rx
ry

Fig. 3.53.Elipsoide con radios rx, ry, rx que se centra en el origen


de las coordenadas
Graficacin
193

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Captulo 3: Modelado Geomtrico

3.35.

x y z
r + r + r = 1
y
x
z
2

Y una representacin paramtrica ara la elipsoide en trminos del ngulo de latitud


() y el ngulo de longitud en la figura 3.53 es


2
2
y = ry cos sin ,
x = rx cos cos ,

3.36.

z = rz sin

Toro
Un toro es un objeto en forma de dona, como se ilustra en la figura 3.37. Se puede
generar al girar una circunferencia u otro cnico alrededor de un eje especfico. La
representacin cartesiana para los puntos sobre la superficie de un toro se pueden expresar
en la forma
2

3.37.

2
2
2

y z

x
r

r + r + r = 1

y
x
z

donde r es cualquier valor de compensacin o descentrado especfico. Las


representaciones paramtricas para un toro son similares a las de una elipse, excepto que el
ngulo se extiende a lo largo de 360. Al utilizar ngulos de latitud y longitud

,podemos describir la superficie del toro como el conjunto de puntos que satisfacen


2
2
y = ry (r + cos )sin ,
x = rx (r + cos )cos ,

3.38.

z = rz sin

Graficacin
194

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Captulo 3: Modelado Geomtrico

eje de las z
rz

(x, y, z)
"
plano xy

rx = r y
0

eje de las y

!
(x, y, z)

eje de las x

Fig. 3.54.Toro con corte transversal circular que se entra en el


origen de las coordenadas

Representaciones de Spline
En la terminologa del dibujo mecnico una spline es una banda flexible que se utiliza
para producir una curva suave a travs de un conjunto de puntos designados. Varios pesos
pequeos se distribuyen a lo largo de la banda para mantenerla en posicin sobre la mesa
de dibujo mientras se traza la curva. El trmino curva de spline al principio se refera a una
curva que se traza de esta manera. Podemos describir esa curva en forma matemtica con
una funcin cbica polinmica cuyas primera y segunda derivadas son continuas a travs de
las distintas secciones de la curva.
En las grficas por computadora, el trmino curva de spline ahora se refiere a cualquier
curva compuesta que se forma con secciones polinmicas que satisfacen condiciones
especficas de continuidad en la frontera de las piezas. Una superficie de spline se puede
Graficacin
195

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Captulo 3: Modelado Geomtrico

describir con dos conjuntos de curvas ortogonales de spline. Existen varias clases de
especificaciones de spline que se utilizan en las aplicaciones grficas. Cada especificacin
individual se refiere slo a un tipo particular de polinomio con ciertas condiciones especficas
de frontera.
Las splines se utilizan en las aplicaciones grficas para diseo formas curvas y de
superficie, para digitalizar trazos para el almacenamiento en la computadora y especificar
trayectorias de animacin para los objetos o la cmara en una escena. Las aplicaciones de
CAD tpicas para las splines incluyen el diseo de carrocera de automviles, superficies de
aeronaves y naves espaciales, as como cascos de embarcaciones.

Interpolacin y aproximacin de splines


Especificamos una curva de spline al proporcionar un conjunto de posiciones de
coordenadas, que se conocen como puntos de control, que indican la forma general de la
curva. Estos puntos de control se ajustan despus con funciones polinmicas paramtricas
continuas en el sentido de la pieza en una de dos maneras.

Fig. 3.55.Conjunto de sis puntos de control que se interpolan con


secciones polinmicas continuas en el sentido de la pieza.

Cuando las secciones polinmicas se ajustan de modo que la curva pasa a travs de
cada punto de control, como en la figura 3.55, se dice que la curva que resulta realiza la
interpolacin del conjunto de puntos de control. Por otra parte, cuando los polinomios se
ajustan a la trayectoria general del punto de control sin pasar necesariamente a travs de
ningn punto de control,se dice que la curva que resulta se aproxima al conjunto de puntos
de control (figura 3.56).
Graficacin
196

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Captulo 3: Modelado Geomtrico

Fig. 3.56.Conjunto de seis puntos de control que se aproximan


con secciones polinmicas continuas en el sentido de la
pieza.

Las curvas de interpolacin se utilizan por lo general para digitalizar trazos o


especificar trayectorias de animacin. Las curvas de aproximacin se utilizan sobre todo
como herramientas de diseo para estructurar las superficies de los objetos.
Una curva de spline se define, modifica y manipula con operaciones en los puntos de
control. Al seleccionar en forma interactiva las posiciones espaciales para los puntos de
control, un diseador puede establecer una curva inicial. Despus de que se despliega el
ajuste polinomial para un conjunto determinado de puntos de control, el diseador puede
cambiar de posicin todos o algunos de los puntos de control para reestructurar la forma de
la curva. Ademas, la curva se puede trasladar, girar o escalar con las transformaciones que
se aplican a los puntos de control. Los paquetes de CAD tambin pueden insertar los puntos
de control adicionales para ayudar a un diseador a ajustar las formas de la curva.
La frontera de polgono convexo que encierra un conjunto de puntos de control se
conoce como casco convexo. Una forma de imaginar la forma de un casco convexo
considera una banda de hule que se estira alrededor de las posiciones de los puntos de
control de modo que cada uno de stos se encuentra ya sea en el permetro del casco o
adentro de ste (figura 3.57).

Graficacin
197

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Captulo 3: Modelado Geomtrico

(a)

(b)
p

Fig. 3.57.Formas de casco convexo (lneas de rayas) para dos


conjuntos de puntos de control.

Los cascos convexos proporcionan una medida para la desviacin de una curva o
superficie desde la regin que limita los puntos de control. Algunas splines estn limitadas
por el casco convexo, que asegura que los polinomios sigan con suavidad los puntos de
control sin oscilaciones errticas. Tambin la regin de polgono adentro del casco convexo
es til en algunos algoritmos como una regin de recorte.
Por lo general, una polilnea que conecta la secuencia de puntos de control para una
spline de aproximacin se despliega para recordar a un diseador el orden de los puntos de
Graficacin
198

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Captulo 3: Modelado Geomtrico

control. Con frecuencia,este conjunto de segmentos de la lnea conectados se conoce como


la grfica de control de la curva.
p

(a)

(b)
p

Fig. 3.58.Formas de grfica de control (lneas de rayas) para dos


conjuntos diferentes de puntos de control

Otros nombres para la serie de secciones de la lnea recta que conectan los puntos de
control en el orden especfico son polgono de control y polgono caracterstico. La figura
3.58 ilustra la forma de la grfica de control para las secuencias del punto de control en la
figura 3.57.

Graficacin
199

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Captulo 3: Modelado Geomtrico

Condiciones de continuidad paramtrica


Para asegurar una transicin suave de una seccin de una curva paramtrica alrededor
de una pieza a la siguiente, podemos imponer varias condiciones de continuidad en los
puntos de conexin. Si se describe cada seccin de una spline como un conjunto de
funciones de coordenadas paramtricas de la forma

3.39.

x = x(u),
y = y(u),
z = z(u)
u1 u u2

establecemos la continuidad paramtrica al comparar las derivadas de secciones


curvas adyacentes en su frontera comn.
La continuidad paramtrica de orden cero, que se describe como continuidad C0, slo
implica que las curvas se unen. Es decir, los valores de x, y y z que se evalan en u para la
primera seccin de la curva son iguales, de modo respectivo, a los valores x, y y z que se
evalan en u1 para la siguiente seccin de la curva.
1

La continuidad paramtrica de primer orden, que se denomina continuidad C , significa


que las primeras derivadas paramtricas (lnea de tangente) de las funciones de
coordenadas en la ecuacin 3.39 para dos secciones curvas sucesivas son iguales en su
2

punto de unin. La continuidad paramtrica de segundo orden, o continuidad C , implica que


tanto la primera como la segunda derivada paramtrica de las dos secciones curvas son las
mismas en la interseccin.
Las condiciones de continuidad parametrica de orden superior se definen de manera
0

similar. En la figura 3.59 se presentan ejemplos de la continuidad C , C y C .

Graficacin
200

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Captulo 3: Modelado Geomtrico

(a)

(b)

(c)

Fig. 3.59.Construccin por piezas de una curva al unir dos segmentos de


curva utilizando distintos rdenes de continuidad: (a) slo continuidad
de orden cero; (b) continuidad de primer orden y (c) continuidad de
segundo orden.

Con la continuidad de segundo orden, los ndices de cambio de los vectores de


tangente para las secciones que se conectan son equivalentes en su interseccin. As la
lnea de tangente realiza una transicin suave de una seccin de la curva a la siguiente
(figura 3.59(c)).
Pero con la continuidad de primer orden, los ndices de cambio de los vectores de
tangente para las dos secciones son muy diferentes (figura 3.59(b)), de modo que es
posible que las formas generales de las dos secciones adyacentes presenten un cambio
abrupto.

Graficacin
201

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Captulo 3: Modelado Geomtrico

Con frecuencia, la continuidad de primer orden es suficiente para digitalizar trazos y


algunas aplicaciones de diseo,en tanto que la continuidad de segundo orden es til para
establecer trayectorias de animacin par a el movimiento de la cmara y para muchos
requerimientos de precisin del CAD.
Una cmara que se desplaza a lo largo de la trayectoria de la curva que aparece en la
figura 3.59 con pasos iguales en el parmetro u experimentar un cambio brusco en la
aceleracin en la frontera de las dos secciones y provocar una discontinuidad en la
secuencia del movimiento. No obstante, si la cmara se desplazara a lo largo de la
trayectoria de la figura 3.59(c), la secuencia de marco para el movimiento efectuar una
transicin suave a travs de la frontera.

Condiciones de continuidad geomtrica


Un mtodo alternativo para unir dos secciones curvas sucesivas consiste en
especificar condiciones para la continuidad geomtrica. En este caso, slo necesitamos que
las derivadas paramtricas de las dos secciones sean proporcionales entre s en su frontera
comn en vez de ser equivalentes.
0

La continuidad geomtrica de orden cero, que se describe como continuidad G , es la


misma que la continuidad paramtrica de orden cero. Es decir, las dos secciones curvas
deben tener la misma posicin de coordenadas en el punto de la frontera. La continuidad
1

geomtrica de primer orden, o continuidad G , implica que las primeras derivadas


paramtricas son proporcionales en la interseccin de dos secciones sucesivas.
Si expresamos la posicin paramtrica en la curva como P(u), la direccin del vector de
tangente P(u), pero no necesariamente su magnitud, ser la misma para dos secciones
1

curvas sucesivas en su punto de unin de acuerdo con la continuidad G . La continuidad


2

geomtrica de segundo orden,o continuidad G , implica que tanto la primera como la


segunda derivada paramtrica de las dos secciones curvas son proporcionales en su
2

frontera. De acuerdo con la continuidad G , las curvaturas de la segunda curva se ajustarn


en la posicin de unin.

Graficacin
202

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Captulo 3: Modelado Geomtrico

C2
P0
C1

(a)

P0
(b)

C1

P2

P1
C2

P1

P2

Fig. 3.60.Tres puntos de control que se ajustan con dos secciones curvas
unidas con (a) continuidad paramtrica y (b) continuidad geomtrica
donde el vector tangente de la curva C3 en el punto P1 tiene una
magnitud mayor que el vector tangente de la curva C1 en P1.

Una curva que se genera con condiciones de continuidad geomtrica es similar a una
que se genera con continuidad paramtrica pero con leves diferencias en la forma de la
curva. La figura 3.60 ilustra una comparacin de continuidad geomtrica y paramtrica. Con
la continuidad geomtrica la curva se jala hacia la seccin que tiene el vector de tangente
ms alto.

Especificaciones de spline
Existen tres mtodos equivalentes para especificar una representacin de spline
particular: (1) podemos establecer el conjunto de condiciones de frontera que se imponen
en la spline; (2) podemos establecer la matriz que caracteriza la spline; o (3) podemos
establecer el conjunto de funciones de combinacin (o funciones base) que determinan la
manera en que se combinan las restricciones geomtricas en la curva para calcular
posiciones a lo largo de la trayectoria de la curva.
A fin de ilustrar estas tres especificaciones equivalentes, suponga que tenemos la
siguiente representacin polinmica cbica paramtrica para la coordenada de x a lo largo
de la trayectoria de una seccin de la spline:
Graficacin
203

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

3.40.

Captulo 3: Modelado Geomtrico

x(u) = ax u 3 + bx u 2 + cx u + d x ,
0 u 1

Por ejemplo, se podr establecer las condiciones de frontera para esta curva, en las
coordenadas de extremo x(0) y x(1) y en las primeras derivadas paramtricas en los
extremos x(0) y x(1). Estas cuatro condiciones de frontera son suficientes para determinar
los valores para los cuatro coeficientes ax, bx. cx y dx.
A partir de las condiciones de frontera, obtenemos la matriz que caracteriza esta
curva de spline al volver a expresar de nuevo la ecuacin 3.40 como el producto matricial

3.41.

ax
b
x
3 2
x(u) = u u u = UC
cx

dx

donde U es la matriz rengln de potencia del parmetro u y C es la matriz columna de


coeficientes. Al utilizar la ecuacin 3.41, es posible expresar las condiciones de frontera en
forma de matriz y despejar la matriz de coeficientes C como

3.42.

C = M spline iM geom

donde Mgeom es una matriz de columnas de cuatro elementos que contiene los valores
de restriccin geomtrica (condiciones de frontera) en la spline y Mspline es la matriz de 4
por 4 que transforma los valores de restriccin geomtrica a los coeficientes polinmicos y
ofrece una caracterizacin para la curva de spline.
La matriz Mgeom contiene los valores de coordenadas del punto de control y otras
restricciones geomtricas que se han especificado. Por tanto, podemos sustituir la
representacin de matriz para C en la ecuacin 3.42 para obtener
3.43.

x(u) = UiM spline iM geom

Graficacin
204

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Captulo 3: Modelado Geomtrico

La matriz Mspline que caracteriza la representacin de una spline, en ocasiones llamada


matriz base,es de particular utilidad para transformar de una representacin de spline a
otra.
Por ltimo podemos ampliar la ecuacin 3.43 con el propsito de obtener una
representacin polinmica para la coordenada de x en trmino de parmetro de restriccin
geomtrica
3

3.44.

x(u) = gk iBFk (u)


k=0

donde gk son los parmetros de restriccin como las coordenadas del punto de control
y la pendiente de la curva en los puntos de control, y BFk(u) son las funciones de
combinacin polinmica. En las secciones siguientes, analizamos algunas splines que se
utilizan en forma comn as como su matriz y especificaciones de funciones de combinacin.

Curvas y Superficies de Bezier


Pierre Bzier, ingeniero francs desarroll este mtodo de aproximacin de splines para
utilizarlo en el diseo de las carroceras de los automviles Renault. Las splines de Bzier
tienen varias propiedades que hacen que sean muy tiles y convenientes para el diseo de
curvas y superficies. Asimismo, es fcil implementarlas. Por estos motivos, las splines de
Bzier estn disponibles en forma comn en varios sistemas de CAD, en paquetes generales
de grficas y en paquetes seleccionados de dibujo y pintura.

Curvas de Bzier
En general, es posible ajustar una curva de Bzier para cualquier nmero de puntos de
control. El nmero de puntos de control que se debe aproximar y su posicin relativa
determinan el grado del polinomio de Bzier. Del mismo modo que con las splines de
interpolacin se puede especificar una curva de Bzier con condiciones de frontera con una
matriz caracterstica o con funciones de combinacin.

Graficacin
205

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Captulo 3: Modelado Geomtrico

Para curvas generales de Bzier la especificacin ms conveniente es la funcin de


combinacin.
Suponga que tenemos n + 1 posiciones de puntos de control: pk = (xk, yk, zk) con k en
el rango de O a n. Es posible combinar estos puntos de coordenadas para producir el
siguiente vector de posicin P(u), que describe la trayectoria de una funcin polinmica de
Bzier aproximada entre p0 y pn.
n

P(u) = pk BEZ k,n (u)


k=0

(0 u 1)

3.45.

Las funciones de combinacin de Bzier BEZk,n (u) son los polinomios de Bernstein:

BEZ k,n (u) = C(n, k)u k (1 u)n k

3.46.

donde C(n, k) son los coeficientes del binomio:

C(n, k) =
3.47.

n!
k!( n k )!

De la misma manera, podemos definir las funciones de combinacin de Bzier con


el clculo recursivo

BEZ k,n (u) = (1 u)BEZ k,n 1 (u) + uBEZ k 1 (u),


,n 1

n k 1

3.48.
k

con BEZk,k = u y BEZ0,k = (1 - u) . La ecuacin vectorial 10-40 representa un conjunto


de tres ecuaciones paramtrica para las coordenadas individuales de la curva:

Graficacin
206

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Captulo 3: Modelado Geomtrico

x(u) = xk BEZ k,n (u)


k=0
n

y(u) = yk BEZ k,n (u)


k=0
n

3.49.

z(u) = zk BEZ k,n (u)


k=0

Como una regla, una curva de Bzier es un polinomio de grado uno menos el nmero
de puntos de control que se utilizan: tres puntos generan una parbola, cuatro puntos una
curva cbica y as en forma sucesiva. La figura 3.61 demuestra la apariencia de algunas
curvas de Bzier para varias selecciones de puntos de control en el plano xy(z = 0). Sin
embargo, con ciertas posiciones de los puntos de control obtenemos polinomios de Bzier
degenerados. Por ejemplo, una curva de Bezier que se genera con tres puntos de control
colineales es un segmento de lnea recta. Y un conjunto de puntos de control que se
encuentran en su totalidad en la misma posicin de coordenadas produce una curva de
Bzier que es un solo punto.

Graficacin
207

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Captulo 3: Modelado Geomtrico

p0

p0

(a)

(b)

p0

p0

(c)

(d)

p0

(e)

Fig. 3.61.Ejemplos de dos curvas de Bezier bidimensionales que


se generaron a partir de tres, cuatro y cinco posiciones de
punto de control.

Las curvas de Bzier se encuentran de manera regular en paquetes de pintura y dibujo,


as como en sistemas de CAD, puesto que su implementacin es fcil y su capacidad es
considerable en el diseo de curvas. Se pueden establecer mtodo eficientes para
determinar las posiciones de coordenadas a lo largo de una curva de Bzier al utilizar

Graficacin
208

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Captulo 3: Modelado Geomtrico

clculos recursivos. Por ejemplo, los coeficientes del binomio sucesivos se pueden calcular
como

3.50.

C(n, k) =

n k +1
C(n, k 1)
k

paran nk.

Propiedades de las curvas de Bzier


Una propiedad muy til de una curva de Bzier es que siempre pasa a travs del
primero y el ltimo puntos de control. Es decir, las condiciones de frontera en los dos
extremos de la curva son

P(0) = p0
P(1) = pn

3.51.

Los valores de las primeras derivadas paramtricas de una curva de Bzier los
extremos se pueden calcular a partir de las coordenadas del punto de control como

P '(0) = np0 + np1


P '(1) = npn 1 + npn

3.52.

Por tanto, la pendiente en el principio de la curva es a lo largo de la lnea que une los
dos ltimos extremos. De modo similar, las segundas derivadas paramtrica de una curva de
Bzier en los extremos se calculan como

P ''(0) = n(n 1) ( p2 p1 ) ( p1 + p0 )
3.53.

P ''(1) = n(n 1) ( pn 2 pn 1 ) ( pn 1 + pn )

Otra propiedad importante de cualquier curva de Bzier es que cae adentro del casco
convexo (frontera de polgono convexo) de los puntos de control. Esto se desprende de las
propiedades de las funciones de combinacin de Bzier: todas son positivas y su suma
siempre es 1,

Graficacin
209

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Captulo 3: Modelado Geomtrico

P(0) = p0
P(1) = pn

3.54.

de manera que cualquier posicin de la curva slo es la suma ponderada de las


posiciones de punto de control. La propiedad de casco convexo para una curva de Bzier
garantiza que el polinomio siga con suavidad los puntos de control sin oscilaciones errticas.

Tcnicas de diseo utilizando curvas de Bzier


Las curvas cerradas de Bzier se generan al especificar el primero y el ltimo punto de
control en la misma posicin, como en el ejemplo que aparece en la figura 3.62.
p

p=p
0

Fig. 3.62.Curva de Bzier cerrada que se genera al especificar el


primero y el ltimo punto de control en la misma posicin.

Asimismo, al especificar mltiples puntos de control en una sola posicin de


coordenadas se obtiene ms peso para esa posicin.

Graficacin
210

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Captulo 3: Modelado Geomtrico

p=p
1

Fig. 3.63.Se puede lograr que una curva de Bzier pase ms cerca
de una posicin de coordenadas determinada al asignar
mltiples puntos de control a esa posicin.

En la figura 3.63 se da entrada a una sola posicin de coordenadas como dos puntos
de control y se jala la curva resultante ms cerca de esta posicin.
Podemos ajustar una curva de Bzier para cualquier nmero de puntos de control, pero
esta operacin requiere el clculo de funciones polinmicas de grado superior. Cuando se
deben generar curvas complicadas, se pueden formar al unir varias secciones de Bzier de
grado inferior. Unir secciones ms pequeas tambin nos ofrece un mejor control sobre la
forma de la curva en regiones pequeas.
Dado que las curvas de Bzier pasan a travs de los extremos, es fcil

comparar

secciones curvas (continuidad de orden cero). Asimismo, las curvas de Bzier presentan la
propiedad importante de que la tangente para la curva en el extremo est a lo largo de la
lnea que une ese extremo al punto de control adyacente. Por tanto, a fin de obtener una
continuidad de primer orden entre secciones curvas, podemos elegir que los puntos de
control p0 y p1

de una seccin nueva est a lo largo de la misma lnea recta que los

puntos de control pn-1 y p1 de la seccin anterior (figura 3.64).

Graficacin
211

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Captulo 3: Modelado Geomtrico

p'0

p0

p'

p'

p'

Fig. 3.64.Curva con continuidad de primer orden

Cuando las dos secciones curvas tienen el mismo nmero de puntos de control,
1

obtenemos una continuidad C al seleccionar el primer punto de control de la nueva seccin


como el ltimo punto de control de la seccin previa al colocar el segundo punto de la
seccin nueva en la posicin

pn + ( pn pn 1 )
As los tres puntos de control son colineales y tienen el mismo espaciado.
2

Obtenemos una continuidad C entre dos secciones de Bzier al calcular la posicin del
tercer punto de control en una seccin nueva en trminos de las posiciones de los tres
ltimos puntos de control de la seccin anterior como

pn 2 + 4( pn pn 1 )
Requerir una continuidad de segundo orden entre dos secciones curvas de Bzier
puede ser una restriccin innecesaria. Esto es cierto, en especial, con curvas cbicas que
slo tienen cuatro puntos de control por seccin. En este caso, la continuidad de segundo
orden fija la posicin de los tres primeros puntos de control y nos deja slo un punto que
podemos utilizar para ajustar la forma del segmento de curva.
Graficacin
212

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Captulo 3: Modelado Geomtrico

Curvas cbicas de Bzier


Muchos paquetes de grficas slo ofrecen funciones de spline cbica Esto da una
flexibilidad de diseo considerable en tanto que se evitan los dems clculos necesarios con
polinomios de orden superior. Las curvas cbicas de Bzier se generan con cuatro puntos de
control. Las cuatro funciones de combinacin para curvas cbicas de Bezier que se obtienen
al sustituir n = 3 en la ecuacin de curvas Bezier con polinomios Bernstein, son

BEZ 0, 3 (u) = (1 u)3


BEZ1, 3 (u) = 3u(1 u)2
BEZ 2, 3 (u) = 3u 2 (1 u)
3.55.

BEZ 3, 3 (u) = u 3

En la figura 3.65 se ilustran los trazos de las cuatro funciones cbicas de combinacin
de Bzier. La forma de las funciones de combinacin determina la manera en que los puntos
de control influyen sobre la forma de la curva para los valores del parmetro u en el rango
de 0 a 1.En u =O, la nica funcin de combinacin no cero es BEZ0,3 que tiene el valor 1. En
u = 1, la nica funcin no cero es BEZ3,3 con un valor de 1 en ese punto. De esta manera
la curva cbica de Bzier siempre pasar a travs de los puntos de control p1, y p2.
Las otras funciones, BEZ1,3 y BEZ2,3 influyen en la forma de la curva en valores
intermedios del parmetro u, de modo que la curva resultante se inclina hacia los puntos p1,
y p2. La funcin de combinacin BEZ1,3 es el mximo en u = 1/3 y BEZ2,3 es el mximo en u
= 2/3.

Graficacin
213

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Captulo 3: Modelado Geomtrico

BEZ0,3(u)

BEZ1,3(u)

0.8

0.8

0.6

0.6

0.4

0.4

0.2

0.2

0.2

0.4

0.6

0.8

0.2

0.4

(a)

0.8

0.6

0.8

(b)

BEZ2,3(u)

BEZ3,3(u)

0.8

0.8

0.6

0.6

0.4

0.4

0.2

0.2

0.6

0.2

0.4

0.6

0.8

0.2

0.4

(d)

(c)

Fig. 3.65.Las cuatro funciones de combinacin de Bzier para las


curvas cbicas (n = 3)

Ntese en la figura 3.65, que cada una de las cuatro funciones de combinacin es no
cero en el rango entero del parmetro u. Por tanto, las curvas de Bzier no permiten un
control local de la forma de la curva. Si decidimos cambiar la posicin de cualquiera de los
puntos de control, se afectar la curva completa.
En las posiciones finales de la curva cbica de Bezier, las primeras derivadas
paramtrica (pendientes) son

P '(0) = 3( p1 2 p0 ),
P '(1) = (3p3 p2 )
Y las segundas derivadas paramtricas son

pn 2 + 4( pn pn 1 )
Graficacin
214

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Captulo 3: Modelado Geomtrico

Al extender las expresiones polinmicas para la s funciones de combinacin, podemos


escribir la funcin de punto cbico de Bzier en la forma matricial

p0
p
1
3 2

P(u) = u u u1iM BEZ


p2

p3
donde la matriz de Bzier es

M BEZ

1 3 3 1
3 6 3 0

=
3 3 0 0

1 0 0 0

Tambin podramos introducir parmetros adicionales con el propsito de permitir el


ajuste de la tensin y el sesgo de la curva, como lo realizamos con las splines de
interpolacin.

Superficies de Bzier
Se pueden utilizar dos conjuntos de curvas de Bzier ortogonales para disear la
superficie de un objeto al especificar un entrelazado de entrada de los puntos de control. La
funcin del vector paramtrico para la superficie de Bzier se forma como el producto
cartesiano de las funciones de combinacin de Bzier :
m

P(u, v) = p j, k BEZ j, m (v)BEZ k,n (u)


j=0 k=0

con pj,k especificando la ubicacin de los puntos de control (m + 1) por (u + 1).


La figura 3.66 ilustra dos trazos de superficie de Bzier. Los puntos de control se
conectan por medio de lneas de rayas y las lneas slidas muestran curvas de constante u y
constante v. Cada curva de constante u se traza al variar v sobre el intervalo de 0 a 1, con

Graficacin
215

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Captulo 3: Modelado Geomtrico

u fija en uno de los valores en su intervalo de unidad. Las curvas de la constante v se trazan
en forma similar.

(a)

(b)
Fig. 3.66.Las superficies de Bzier que se construyen para la
parte (a) m = 3, n = 3 y en la parte (b) m = 4. Los puntos de
control se conectan con lneas de rayas.

Las superficies de Bzier tienen las mismas propiedades que las curvas de Bzier y
proporcionan un mtodo conveniente para las aplicaciones de diseo interactivo. Para cada
parche de superficie, podemos seleccionar un entrelazado de puntos de control en el plano
de terreno xy, as elegimos elevaciones sobre el plano de terreno para los valores de las
coordenadas z de los puntos de control. De esta manera los parches se pueden unir al
utilizar las restricciones de frontera.
Graficacin
216

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Captulo 3: Modelado Geomtrico

L1

L2
Lnea de frontera

Fig. 3.67.Superficie de Bzier compuesta que se cre con dos secciones de Bzier que se
unen en la lnea de frontera que se indica. Las lneas de rayas conectan puntos de
control especficos. Se establece la continuidad de primer orden al determinar la razn
de longitud L1 con respecto de la longitud L2 constante para cada lnea colineal de
puntos de control a lo largo de la frontera entre las secciones de la superficie

La figura 3.67 ilustra una superficie que se forma con dos secciones de Bzier. Al igual
que con las curvas, se asegura una transicin suave de una seccin a la otra al establecer
tanto la continuidad de orden cero como la de primer orden en la frontera. La continuidad
de orden cero se obtiene al elegir puntos de control a lo largo de una lnea recta a travs de
la frontera y al mantener una relacin constante de segmentos de lnea colineales para cada
conjunto de puntos de control especfico a travs de las fronteras de la seccin.
Graficacin
217

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Captulo 3: Modelado Geomtrico

Resumen
Se han desarrollado mucha representaciones para modelar la amplia variedad de
objetos y materiales, que podramos querer visualizar en una escena de grficas por
computadora. En la mayora de los casos, una representacin tridimensional de un objeto se
crea mediante un paquete de software como un objeto grfico estndar cuyas superficies
se muestran como una malla poligonal.
La representacin de frontera que ms se utiliza para un objeto grfico tridimensional
es un conjunto de polgonos de superficie que encierran el interior del objeto. Muchos
sistemas grficos almacenan todas las descripciones de

objetos como

conjuntos de

polgonos de superficie.
Una clase de objetos que se utiliza con frecuencia son las superficies cudricas, que se
describen con ecuaciones de segundo grado (cuadrticas). Incluyen esferas, elipsoides,
toros, paraboloides e hiperboloides.
Una spline es una banda flexible que se utiliza para producir una curva suave a travs
de un conjunto de puntos designados. Varios pesos pequeos se distribuyen a lo largo de la
banda para mantenerla en posicin sobre la mesa de dibujo mientras se traza la curva.
En las grficas por computadora, el trmino curva de spline ahora se refiere a cualquier
curva compuesta que se forma con secciones polinmicas que satisfacen condiciones
especficas de continuidad en la frontera de las piezas.
Pierre Bzier, ingeniero francs desarroll el mtodo de aproximacin de splines ahora
conocido como Curvas Bezier. Las splines de Bzier tienen varias propiedades que hacen
que sean muy tiles y convenientes para el diseo de curvas y superficies.
Las superficies spline son una extensin bidimensional de las curvas spline. Las
superficies spline se pueden entender como una curva spline en la que el lugar cada punto
de control es sustituido por una curva spline del mismo tipo de la curva inicial.
El modelado slido insiste en crear solamente modelos completos de slidos, modelos
que son adecuados para responder algoritmicamente a cualquier pregunta geomtrica que
se formule.
Graficacin
218

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Captulo 3: Modelado Geomtrico

Los principales esquemas de modelado de slido son el de representacin de fronteras


(Boundary representation o B-Rep) y el de geometra constructiva de slidos (Constructive
Solid Geometry o CSG).
La representacin de fronteras describe el objeto en funcin de sus fronteras
superficiales: vrtices, reas y caras. En la geometra slida constructiva un objeto se
almacena como un rbol con operadores en los nodos internos y primitivas simples en las
hojas.
En general, las proyecciones transforman puntos en un sistema de coordenadas de
dimensin n a puntos en un sistema de coordenadas con dimensin menos que n.
La proyeccin de objetos tridimensionales es definida por rayos de proyeccin rectos,
llamados proyectores que emanan de un centro de proyeccin, pasan por cada punto del
objeto e intersecan un plano de proyeccin para formar la proyeccin.
Por lo general, el centro de proyeccin se encuentra a una distancia finita del plano de
proyeccin. En algunos tipos de proyecciones es conveniente pensar en funcin de un
centro de proyeccin que tienda a estar infinitamente lejos.
Las proyecciones de perspectiva de cualquier conjunto de lneas paralelas que no sean
paralelas al plano de conversin convergen en un punto de fuga. En el espacio tridimensional
elpunto de fuga se puede considerar como la proyeccin de un punto en el infinito.
Las proyecciones de perspectiva se clasifican de acuerdo con el nmero de puntos de
fuga principales y por ende, con respecto al numero de ejes que corta el plano de
proyeccin.
Las proyecciones paralelas se clasifican en dos tipos, dependiendo de la relacin etre la
direccin de la proyeccin y la normal al plano de proyeccin. En las proyecciones paralelas
ortogrficas, estas direcciones son las mismas (o en sentido contrario): de manera que la
direccin de la proyeccin es normal al plano de proyeccin.
Los tipos ms comunes de proyecciones ortogrficas son la de relacin frontal,
elevacin superior o elevacin de plano y la de elevacin lateral. En todas ellas, el plano de
proyeccin es perpendicular al eje principal, que por lo tanto es la direccin de la proyeccin
Graficacin
219

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Captulo 3: Modelado Geomtrico

Las proyecciones ortogrficas axonomtricas usan planos de proyeccin que no son


normales a un eje principal y que por ende muestran varias caras de un objeto al mismo
tiempo.
Las proyecciones oblicuas, la segunda clase de proyecciones paralelas, difieren de las
proyecciones ortogrficas en que Ia normal al plano de proyeccin y la direccin de la
proyeccin son diferentes. Las proyecciones oblicuas combinan las propiedades de las
proyecciones

ortogrficas

frontal,

superior

lateral

con

las

de

una

proyeccin

axonomtrica: el plano de proyeccin es normal a un eje principal, de manera que la


proyeccin de la cara del objeto paralela a este plano permite medir ngulos y distancias.
La proyeccin isomtrica es una proyeccin axonomtrica de uso comn. La normal al
plano de proyeccin (y por consiguiente la direccin de la proyeccin) forma ngulos iguales
con respecto a cada eje principal.

Graficacin
220

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Bibliografa

Bibliografa
Buss, Samuel R. 3-D computer Graphics. California, USA. Cambridge University Press.
Demel , John T./ Michael J. Miller. Grficas por computadora. Mxico, D.F. Ed. Mc. Graw Hill.
Foley , James D./ Andries Van Dam. Introduccin a la graficacin por computadora. Mxico,
D.F. Ed. Addison Wesley Iberoamericana.
Hearn, Donald / Baker, M. Pauline. Graficas por computadora 2a edicin. Mxico, D.F. Ed.
Prentice Hall Hispanoamericana.
Hill, F. S. Jr. Computer Graphics Using Open Gl. USA. Ed. Prentice-Hall.
Paluszny Marco et. al. Mtodos de Bzier y B-Splines. USA. Ed. Springer-Verlag.
Parent, Richard. Computer Animation: Algorithms and Techniques. Ed. Morgan Kauffman.
Pavlidis, Theo. Algorithms for Graphics and Image processing. USA. Computer Science Press.
Preparata, Franco P. Computational Geometry. USA. Ed. Springer-Verlag
Ramos, Ricardo. Informtica Grfica. Universidad de Oviedo. Oviedo, Espaa.
Rogers , David .F. Procedural Elements of Computer Graphics. 2a edicin. USA. Ed. Mc Graw
Hill.
Shneider, Philip / Eberly, David H. Geometric tools for computer graphics. California, USA.,
Morgan Kaufmann Publishers.
Torres, J.C., Diseo asistido por ordenador. Granada, Espaa. Universidad de Granada.
Universidad de Valencia. Informtica Grfica. Valencia, Espaa.
Graficacin
221

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Bibliografa

Universidad de Vigo. Introduccin a las grficas por computadora. Vigo, Espaa.


Universitat Jaume I de Castell. Diseo y Fabricacin Asistido por Ordenador. Valencia,
Espaa.
Universidad Politcnica de Valencia. Tecnicas Grficas. Valencia, Espaa.
Vince, John. Mathematics for computer graphics. 2a edicin. USA. Springer - Verlag.
Wikipedia. Formatos Grficos. http://es.wikipedia.org. Enero de 2007.
Wright, Richard S. OpenGLOrg. OpenGL SuperBible. Estados Unidos.

Graficacin
222

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Apndice A

Apndice A
Introduccin a OpenGL
En OpenGL se proporciona una biblioteca bsica de funciones para especificar
primitivas

grficas,

atributos,

transformaciones

geomtricas,

transformaciones

de

visualizacin y muchas otras operaciones. Est diseada para ser independiente del
hardware, por lo tanto, muchas operaciones como las subrutinas de entrada y salida, no
estn incluidas en la biblioteca bsica.
Sin embargo, las subrutinas de entrada y salida y muchas funciones adicionales estn
disponibles en bibliotecas auxiliares que se han desarrollado para programas OpenGL.

A.1. Sintaxis bsica de OpenGL


Los nombres de las funciones de la biblioteca bsica de OpenGL (tambin llamada de
biblioteca del ncleo de OpenGL utilizan como prefijo GL y cada palabra que forma parte del
nombre de una funcin tiene su primera letra en mayscula. Los siguientes ejemplos ilustran
este convenio de denominacin.
glBegin, glClear, glCopyPixels, glPolygonMode
Algunas funciones requieren que a uno (o ms) de sus argumentos se les asigne una
constante simblica al especificar por ejemplo. un nombre de parmetro, un valor para un
parmetro o un modo particular. Todas estas constantes comienzan con las letras GL en
maysculas. Adems, las palabras que forman parte de una constante con nombres se
escriben en maysculas y el guin bajo (_) se utiliza como separador entre todas estas
palabras del nombre. Los siguientes son unos pocos ejemplos de los varios cientos de
constantes simblicas disponibles para uso con las funciones de OpenGL.
Graficacin
223

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Apndice A

GL_2D, GL_RGB, GL_CCW, GL_POLYGON, GL_AMBIENT AND DIFFUSE


Las funciones de Openl tambin esperan tipos de datos especficos. Por ejemplo, un
parametro de una funcin de OpenGL podra esperar un valor que se especifica como un
entero de 32 bits. Pero el tamao de la especificacin de un entero puede ser diferente en
las distintas mquinas. OpenGL tiene incorporada una serie de nombres para tipos de datos
especficos tales como
Glbyte, GLshort, GLint, GLfloat, GLdouble, GLboolean
Cada nombre de tipo de datos comienza con las letras maysculas GL

y, a

continuacin, un identificador de tipo de datos estndar, escrito con letras minsculas.


A algunos argumentos de funciones de OpenGL se les puede asignar valores
empleando una matriz que enumera un conjunto de valores de datos, Esta opcin se utiliza
para especificar una lista de valores como un puntero a una matriz, en lugar de especificar
cada elemento de la lista explcitamente como un argumento, Un ejemplo tpico del uso de
esta opcin es la especificacin de los valores de las coordenadas xyz.

A.2. Bibliotecas relacionadas


Existe un gran nmero de bibliotecas relacionadas para la realizacin de operaciones
especiales, adems de la biblioteca bsica de OpenGL. La utilidad GLU (OpenGL Utility)
proporciona subrutinas para la configuracin de las matrices de visualizacin y proyeccin,
descripcin

de

objetos

complejos

mediante

lneas

aproximaciones

poligonales,

visualizacin de cudricas y splines B empleando aproximaciones lineales, procesamiento de


operaciones

de

representacin

de

superficies

otras

tareas

complejas.

Toda

implementacin de OpenGL incluye la biblioteca GLU. Todos los nombres de las funciones
GLU comienzan con el prefijo glu.
Tambin existe un conjunto de herramientas orientadas a objetos basado en OpenGL
llamado Open Inventor que proporciona subrutinas y formas de objetos predefinidos para su
uso en aplicaciones tridimensionales interactivas. Este conjunto de herramientas est
escrito en C++.

Graficacin
224

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Apndice A

Para crear grficos utilizando OpenGL, necesitamos en primer lugar configurar una
ventana de visualizacin en nuestra pantalla de vdeo. Se trata simplemente de la zona
rectangular de la pantalla en la nuestra imagen se mostrar. No podemos crear
directamente la ventana de visualizacin con las funciones de OpenGL bsicas, ya que esta
biblioteca contiene unicamente funciones grficas independientes del dispositivo, y las
operaciones de gestin de ventanas dependen de la computadora que estemos utilizando.
Sin embargo, existen varias bilbiotecas de sistema de ventanas que soportan las funciones
de OpenGL en una gran variedad de mquinas.
La ampliacin de OpenGL al sistema de ventanas X (GLX, OpenGL Extension to the X
Window System) proporciona un conjunto de subrutinas que utilizan como prefijo las letras
glx. Los sistemas Apple pueden utilizar la interfaz para operaciones de gestin de ventanas
Apple GL (AGL). Los nombres de las funciones de esta biblioteca utilizan como prefijo agl.
En los sistemas que utilizan Microsoft Windows, las subrutinas WGL proporcionan una
interfaz de Windows a OpenGL. Estas subrutinas utilizan como prefijo las letras wgl. El
gestor PGL (Presentation Manager to OpenGL) es una interfaz para el sistema operativo 0S/
2 de IBM, que utiliza el prefijo pgl en las subrutinas de la biblioteca. Y el kit de herramientas
GLUT (OpenGL Utility Toolkit) proporciona una biblioteca de funciones para interactuar con
cualquier sistema de ventanas. Las funciones de la biblioteca GLUT utilizan como prefijo
glut. Esta biblioteca tambin contiene mtodos para describir y representar superficies y
curvas cudricas.
Ya que GLUT es una interfaz con otros sistemas de ventanas dependientes del
dispositivo, podemos utilizar GLUT para que nuestros programas sean independientes del
dispositivo.

A.3. Archivos de cabecera


En todos nuestros programas grficos, necesitaremos incluir el archivo de cabecera
para la biblioteca del ncleo de OpenGL. En la mayora e las aplicaciones tambin
necesitaremos GLU. Y necesitaremos incluir el archivo de cabecera para el sistema de
ventanas. Por ejemplo, en Microsoft Windows, el archivo de cabecera para acceder a las
subrutinas de WGL es windows.h. Este archivo de cabecera se debe indicar antes de los
Graficacin
225

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Apndice A

archivos de cabecera de OpenGL y GLU, ya que contiene macros que se necesitan en la


versin de la biblioteca de OpenGL para Microsoft Windows. Por tanto, el archivo fuente en
este caso debera comenzar con
#include <windows.h>
#include <GL/gl.h>
#include <GL/glu.h>
Sin embargo si utilizamos GLUT para gestionar las operaciones de gestin de ventanas,
no necesitaremos incluir gl.h y glu.h, porque GLUT garantiza que estos archivos se
incluirn correctamente. Por tanto, podemos reemplazar los archivos de cabecera de
OpenGL y GLU por
#include <GL/glut.h>
Tambin podramos incluir gl.h y glu.h, pero al hacerlo seramos redundantes y se
podra ver afectada la portabilidad del programa.
Adems, a menudo necesitaremos incluir archivos de cabecera que eel cdigo C++
requiere. Por ejemplo,
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
Con el nuevo estndar ISO/ANSI para C++, estos archivos de cabecera se denominan
cstudio, cstdlib y cmath.

A.4. Gestin de la ventana de visualizacin


empleando GLUT
Para comenzar, podemos considerar un nmero mnimo y simplificado de operaciones
para mostrar una imagen. Ya que estamos empleando la utilidad GLUT (OpenGL Utility
Toolkit), nuestro primer paso consiste en inicializar GLUT. Esta funcin de inicializacin
podra tambin procesar argumentos cualesquiera de la lnea de comandos, pero no
necesitaremos utilizar estos parmetros en nuestro primer ejemplo de programa.
Graficacin
226

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Apndice A

Realizamos la inicializacin de GLUT con la siguiente lnea:


glutInit(&argc, &argv);
A continuacin, podemos indicar que se cree una ventana de visualizacin en la
pantalla con un ttulo en su barra de ttulo. Esto se realiza con la funcin
glutCreateWindow(Un programa de ejemplo con OpenGL);
Donde el nico argumento de esta funcin puede ser cualquier cadena de caracteres
que queramos utilizar como ttulo de la ventana de visualizacin.
Ahora hay que especificar que va a contener la ventana de visualizacin. Para ello,
creamos una imagen empleando las funciones de OpenGL y se pasa la definicin de la
imagen a la subrutina llamada glutDisplayFunc, que asigna nuestra imagen a la ventana
de visualizacin. Como ejemplo, suponga que disponemos del cdigo de OpenGL para
describir un segmento en un procedimiento llamado lineSegment. Entonces la siguiente
llama a funcin pasa la descripcin del segmento a la ventana de visualizacin.
glutDisplayFunc(lineSegment);
Pero la ventana de visualizacin no est an en la pantalla. Necesita una funcin ms
de GLUT para completar las operaciones de procesamiento de ventana. Despus de la
ejecucin de la siguiente lnea, todas las ventanas de visualizacin que hayas creado,
incluyendo su contenido grfico, se activarn.
glutMainLoop();
Esta funcin debe ser la ltima en nuestro programa. sta muestra los grficos iniciales
y pone el programa en un bucle infinito que comprueba la entrada procedente de
dispositivos, tales como un ratn o un teclado. Nuestro primer ejemplo no ser interactivo,
por lo que el programa nicamente continuar mostrando la imagen hasta que cerremos la
ventana de visualizacin.
Aunque la ventana de visualizacin que creamos tendr una posicin y un tamao
predeterminados, podemos establecer estos parmetros empleando funciones adicionales
del kit de herramientas GLUT. Utilizamos la funcin glutInitWindowPosition para porporcionar
una posicin inicial para la esquina superior izquierda de la ventana de visualizacin. Esta
Graficacin
227

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Apndice A

posicin se especifica en coordenadas enteras de pantalla, cuyo origen est en la esquina


superior izquierda de la pantalla.
Por ejemplo, la siguiente lnea especifica que la esquina superior izquierda de la
ventana de visualizacin se debera colocar 50 pixeles a la derecha del borde izquierdo de la
pantalla y 100 pixeles hacia abajo desde el borde superior de la pantalla.
glutInitWindwPosition(50,100);
Anlogamente, la funcin glutInitWindowsSize se utiliza para establecer la anchura y la
altura en pixeles de la ventana de visualizacin. Por tanto, especificamos una ventana de
visualizacin con una anchura inicial de 400 pixeles y una altura de 300 pixeles con la lnea
siguiente,
glutInitWindowsSize(400,300);
Despus de que la ventana de visualizacin est en pantalla, podemos volver a cambiar
tanto su posicin como su tamao.
Tambin podemos establecer otras opciones de la ventana de visualizacin, tales
como los bferes y una opcin de los modos de color, con la funcin glutInitDisplayMode.
Los argumentos de esta subrutina se asignan mediante constantes simblicas GLUT. Por
ejemplo, la siguiente orden especifica que se utilice un nico buffer de refresco en la
ventana de visualizacin y que se utilice el modo de color RGB (rojo, verde, azul) para
seleccionar los valores de los colores.
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
Los valores de las constantes que se pasan a esta funcin se combinan empleando la
operacin lgica or. En realidad, el buffer nico y el modo de color RGB son opciones
predeterminadas. Pero usaremos esta funcin para recordar que se han establecido para
nuestra visualizacin.

A.5. Un programa OpenGL completo


Todava hay que realizar algunas tareas antes de que tengamos todas las partes
necesarias para un programa completo. En la ventana de visualizacin podemos elegir un
Graficacin
228

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Apndice A

color de fondo. Y necesitamos construir un procedimiento que contenga las funciones


apropiadas de OpenGL para la imagen que queremos mostrar en pantalla.
Mediante el empleo de valores de color RGB, establecemos que el color de la ventana
de visualizacin sea blanco con la funcin de OpenGL
glClearColor(1.0, 1.0, 1.0, 1.0, 0.0);
Los tres primeros argumentos de esta funcin establecen cada

una de las

componentes de color roja, verde y azul en el valor de 1.0. Por tanto, obtenemos el color
blanco en la ventana de visualizacin. Si, en lugar de 1.0, establecemos cada una de las
componentes de color en 0.0, obtendramos el color negro como color de fondo. Y si a cada
una de las componentes rojs, verde y azul se les asigna un valor intermedio entre 0.0 y 1.0
obtendramos algn nivel de gris.
El cuarto parmetro de la funcin glClearColor se denomina valor alfa del color
especificado. Un uso del valor alfa es el parmetro de << fundido >> (blending). Cuando
activamos las operaciones de fundido de OpenGL, los valores alfa se pueden utilizar para
calcular el valor resultante de dos objetos que se superponen. Un valor alfa de 0.0 indica
que el objeto es totalmente transparente, mientras que el valor alfa de 1.0 indica que el
objeto es opaco. Por ahora, establecemos simplemente el valor alfa en 0.0.
Aunque la orden glClearColor asigna un color a la ventana de visualizacin, sta no
muestra la ventana de visualizacin en la pantalla. Para conseguir que el color asignado a la
ventana se visualice, necesitamos invocar la siguiente funcin de OpenGL.
glClear(GL_COLOR_BUFFER_BIT);
El argumento GL_COLOR_BUFFER_BIT es una constante simblica que especifica que
son los valore de los bits del buffer de color (buffer de refresco) los que se deben asignar a
los valores indicados en la funcin glClearColor.
Adems de establecer el color de fondo de la ventana de visualizacin, podemos elegir
entre una gran variedad de esquemas de color para los objetos que queremos mostrar en
una escena. En nuestro ejemplo inicial de programacin, establecemos simplemente el color
del objeto en rojo.

Graficacin
229

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Apndice A

glColor3f(1.0, 0.0, 0.0);


El sufijo 3f de la funcin glColor indica que especificamos las tes componentes de
color RGB mediante el empleo de valores de punto flotante (f). Estos valores se deben
encontrar dentro del rango comprendido entre 0.0 y 1.0, y hemos establecido la
componente roja en 1.0 y las componentes verde y azul en 0.0
En nuestro primer programa, simplemente mostramos un segmento bidimensional. Para
ello, necesitamos decir a OpenGL como queremos proyectar nuestra imagen en la ventana
de visualizacin, porque la generacin de una imagen bidimensional se trata en OpenGL
como un caso especial de la visualizacin tridimensional. Por lo que, aunque solo queramos
producir una lnea muy simple bidimensional, OpenGL procesa a imagen mediante todas las
operaciones de visualizacin tridimensional. Podemos establecer que el tipo de proyeccin
(modo) y otros parmetros de visualizacin que necesitemos con las dos funciones
siguientes:
glMatrizMode(GL_PROJECTION);
gluORTHO2D(0.0, 200.0, 0.0, 150.0);
Esto especifica que se debe utilizar una proyeccin ortogonal para mapear los
contenidos de una zona rectangular bidimensional (2D) de las coordenadas universales a la
pantalla, y que los valores de la coordenada x dentro de este rectngulo varan desde 0.0
hasta 200.0 y que los valores de la coordenada y varan desde 0.0 hasta 150.0.
Objetos cualesquiera que definamos dentro de este rectngulo de coordenadas
universales se mostrarn dentro de la pantalla de visualizacin. Cualquier cosa fuera de este
rango de coordenadas universales se mostrarn dentro de la ventana de visualizacin.
Cualquier cosa fuera de este rango de coordenadas no se visualizar. Por tanto, la funcin
de GLU gluOrtho2D establece que el sistema de coordenadas de referencia dentro de la
ventana de visualizacin deber tener las coordenadas (0.0 , 0.0) en la esquina inferior
izquierda de la ventana de visualizacin y (200.0 y 150.0) en la esquina superior izquierda
de la ventana.
Ya que solo describimos un objeto bidimensional, el nico efecto que tiene la
proyeccin ortogonal es pegar nuestra imagen en la ventana de visualizacin definida
anteriormente. Por ahora utilizaremos un rectngulo de coordenadas universales con la
Graficacin
230

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Apndice A

misma relacin de aspecto que la ventana de visualizacin, para que no haya distorsin en
nuestra imagen.
Finalmente, necesitamos llamar las subrutinas apropiadas de OpenGL para crear
nuestro segmento. El cdigo siguiente define un segmento bidimensional definiendo sus
extremos con coordenadas cartesianas enteras de valores (180, 15) y (10, 145).
glBegin (GL_LINES)

glVertex2i(180,15);

glVertex2i(10, 145);

glEnd();
Ahora es el momento e reunir todas las piezas. El siguiente programa de OpenGl est
organizado en tres procedimientos. Colocamos todas las inicializaciones y los parmetros de
configuracin relacionados en el procedimiento init. Nuestra descripcin geomtrica de la
imagen que queremos visualizar est en el procedimiento lineSegment, que es el
procedimiento que ser referenciado por la funcin de GLUT glutDisplayFunc. Y el
procedimiento main contiene las funciones de GLUT que configuran la ventana de
visualizacin y que muestran nuestro segmento en la pantalla.
A continuacin se muestra la ventana de visualizacin y el segmento generado por
este programa.
#include<GL.glut.h> //u otras lneas dependiendo del sistema que usemos
void init(void){

glClearColor(1.0, 1.0, 1.0, 0.0); //Establece el color de la ventana

glMatrixMode(GL_PROJECTION);//Establece los parmetros de proyeccin

gluOrtho2D(0.0, 200.0, 0.0, 15.0);

// de visualizacin en blanco

}
void lineSegment(void){

glClear(GL_COLOR_BUFFER_BIT); //Borra la ventana de visualizacin

glColor3f(1.0, 0.0, 0.0); //Establece el color del segmento de lnea














//en rojo

glBegin(GL_LINES)

glVertex2i(180, 15); //Especifica la geometra del segmento

Graficacin
231

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

glVertex2i(10, 145);

glEnd();

glFlush();

//Procesa todas subrutinas de OpenGL tan rpidamente como

//sea posible

Apndice A

// de lnea

}
void main(int argc, char ** argv){


glitInit(&argc, argv); //Inicializa GLUT

glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);

//Establece el modo de

// visualizacin

glutInitWindowPosition(50,100); // Establece la posicin de la esquina

glutInitWindowSize(400,300);
//Establece el ancho y la altura de la

glutCreateWindow(Ejemplo de programa en OpenGL) //Crea la ventana

init();

glutDisplayFunc(lineSegment);
//Enva los grficos a la ventana de














//visualizacin

glutMainLoop();

//superior izquierda de la ventana de visualizacin



//ventana de visualizacin

//Ejecuta el procedimiento de inicializacin

//Muestra todo y espera

}
Al final del procedimiento lineSegment hay una funcin, glFlush, que todava no se
ha mencionado. Es simplemente una subrutina que fuerza la ejecucin de nuestras funciones
de OpenGL, las cuales almacenan las computadoreas en buffers en diferente posiciones,
dependiendo de cmo est implementada OpenGL. En una red ocupada, por ejemplo, podra
haber retrasos en el procesamiento de algunos buffers. Pero la llamada a glFlush fuerza a
que todos estos buffers se vacen y que las funciones de OpenGL se procesen.
El procedimiento lineSegment que hemos creado para descrbiir nuestra imagen se
denomina

funcin de respuesta a la visualizacin (display callback function).

Este

procedimiento lo registra glutDisplayFunc como la subrutina que se invoca siempre que


sea preciso mostrar la ventana de visualizacin de nuevo. Esto puede ocurrir, por ejemplo, si
se mueve la ventana de visualizacin. Por lo general, los programas que utilizan OpenGL se
organizan como un conjunto de funciones de respuesta que se invocan cuando ocurren
determinadas acciones.

Graficacin
232

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Apndice A

A.6. Instalacin de OpenGL


Es recomendable que una vez terminada la prctica se examine el Apndice A, el cual
contiene una introduccin a la programacin en OpenGL.

OpengGL en Windows
Las libreras de OpenGL para Windows fueron implementadas en un inicio para Windows
NT y posteriormente en otras versiones del sistema operativo. Existen problemas de
seguridad, errores de compilacin, de tiempo de ejecucin y fallos en el sistema los cuales
no han sido documentados, por lo tanto el usuario es responsable del uso que se le de al
software. Las siguientes instrucciones no funcionaran en Windows Vista.
Es conveniente sealar que los ejemplos, ejercicios y prcticas sealadas en este texto
han sido probadas nicamente en sistemas UNIX, LINUX, BSD y Mac OS X.
Para comenzar la programacin es necesario instalar GLUT (vase Apndice A). GLUT
puede usarse con Visual C++ as como con algunos productos de Borland.

Paso 1: Instalar GLUT


El primer paso es descargar GLUT, puede hacerse desde la siguiente pgina:
http://www.opengl.org/resources/libraries/glut/glut_downloads.php#windows
Los detalles de la instalacin y compilacin pueden observarse en el Lame o Readme
disponible en la siguiente pgina:
http://www.xmission.com/~nate/glut.html
Despus de instalar, se deben mover algunos archivos como a continuacin se indica:

Graficacin
233

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Apndice A

Archivo
glut32.dll

Ubicacin
Windows XP | Server 2003: C:\WINDOWS\system\
Windows 2000: C:\WINNT\system\

glut32.lib

C:\Program

Files\Microsoft

Visual

Studio

NET

2003\Vc7

Visual

Studio

NET

2003\Vc7

\PlatformSDK\Lib
glut.h

C:\Program

Files\Microsoft

\PlatformSDK\Include\gl
Si se desea utilizar cualquier aplicacin o programa creado con OpenGL en una
computadora diferente a la que fue compilado, deber incluirse el archivo glut32.dll en la
ruta indicada arriba, de lo contrario no funcionar.

Paso 2: Crear un proyecto de Visual Studio


Debido a que GLUT est diseado para ser independiente del sistema de ventanas,
GLUT debe correr como una aplicacin de consola en vez de correr como una aplicacin
nativa de Windows.
4.

Crea un proyecto nuevo (Archivo -> Nuevo -> Proyecto). Aparecer un cuadro
de dilogo.

5.

En el panel Tipos de Proyecto (Project Types) selecciona Proyectos Visual C++


(Visual C++ Projects). Luego en el panel de plantillas selecciona Proyecto de
Consola Win32 (Win32 Console Project). Dale nombre al proyecto y dale clic en
Aceptar. Aparecer el Wizard de aplicaciones Win32.

Graficacin
234

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Apndice A

En la parte izquierda de la pantalla da clic en el tab Propiedades de la aplicacin


(Application Settings), y marca el checkbox Proyecto vaco y da clic en Terminar.

Graficacin
235

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Apndice A

Paso 3. Aadir cdigo fuente


Se asume que ya se poseen conocimientos previos de Visual Studio, as que se no es
necesario dar una explicacin detallada sobre la adicin de cdigo fuente.
Cuando se incluye GLUT en un programa, automticamente se incluyen otros archivos
cabecera de Open GL. Escribir explcitamente:
#include <GL/gl.h>
#include <GL/glu.h>
No es necesario, solamente se debe escribir:
#include <GL/glut.h>

No debe utilizarse la diagonal invertida (\). Visual Studio compilara el programa pero los
Graficacin
236

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Apndice A

compiladores estndar no lo harn.

Paso 4: Modificar las propiedades del proyecto


Antes de compilar el proyecto, se le debe hacer un link en visual Studio para que sepa
donde encontrar GLUT. Para hacer esto, se debe abrir el dilogo de propiedades del proyecto
(Proyecto -> Propiedades)
De la lista desplegable Configuracin selecciona Todas las configuraciones. En el panel
izquierdo, selecciona Linker y luego la opcin Entrada (Input). Aade el siguiente cdigo al
cuadro de texto Dependencias Adicionales (Additional Dependencies). Copia y pega:
opengl32.lib glu32.lib glut32.lib

Despus de dar clic en Aceptar puedes empezar a programar.

Graficacin
237

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Apndice A

OpenGL en Linux
Para instalar la librera GLUT en Linux debers entrar a la consola y teclear lo siguiente:
Ubuntu

$sudo apt-get install libglut3 libglut3-dev

Debian

#apt-get install libglut3 libglut3-dev

Fedora, Mandriva, RedHat

yum install libglut3 libglut3-dev

Hecho esto, se puede comenzar a programar.

OpenGL en Mac
La herramienta para Mac Xcode ya incluye la librera GLUT. Xcode viene incluido de
forma gratuita dentro de los CD de instalacin del sistema operativo Mac. Para utilizar
OpenGL unicamentese tiene que aadir el Framework al proyecto.
Primero se crea una aplicacin C++ Tool, luego se abre la ventana para aadir
Frameworks (Project ->Add to Project) y se selecciona el framework GLUT ( Se encuentra en
HD

->

Developer->

SDKs

->

MacSDK

->System

->

Library

->

Frameworks

->

GLUT.framework).
Aparecer una ventana como la siguiente

Graficacin
238

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Apndice A

Se selecciona la opcin Copy items... si se desea que se copie el framework a la carpeta


del proyecto. Dar clic en Add.
En el archivo main.cpp aadir al inicio:
#include <GLUT/glut.h>
Ahora se puede comenzar a programar.

Graficacin
239

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Apndice B

Apndice B
Matemticas para Graficacin
B.1. Sistemas de coordenadas
Tanto los sistemas de referencias cartesianos como los no cartesianos resultan tiles
en las aplicaciones grficas. Normalmente, especificamos las coordenadas en un programa
grfico utilizando un sistema de referencia cartesiano, pero la especificacin inicial de una
escena podra proporcionarse en un sistema de referencia no cartesiano. A menudo, las
simetras escnicas, cilndricas o de otros tipos pueden aprovecharse para simplificar las
expresiones relativas a las descripciones o manipulaciones de los objetos.

Coordenadas de pantalla bidimensionales


Para los comandos independientes del dispositivo incluidos dentro de un paquete
grfico, las coordenadas de pantalla se referencian dentro del primer cuadrante de un
sistema cartesiano bidimensional en posicin estndar (figura B.1. (a)). El origen de las
coordenadas de este sistema de referencia se encuentra situado en la esquina inferior
izquierda de la pantalla, por lo que las posiciones de pantalla estn representadas
internamente con respecto a la esquina superior izquierda de la misma.

Graficacin
240

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Apndice B

ymax
yinvert

ymax
(a)

(b)

Fig. B.1.Coordenadas de pantalla cartesianas referenciadas con


respecto a la esquina infeior izquierda de la pantalla (a) o a la
esquina superior izquierda de la pantalla (b)

Por tanto, los comandos dependientes del dispositivo, como por ejemplo los relativos a
la entrada interactiva y a las manipulaciones de las ventanas de visualizacin, suelen hacer
referencia a las coordenadas de pantalla utilizando el sistema cartesiano invertido (figura B.
1.(b)). Los valores de las coordenadas horizontales en los dos sistemas son iguales y, un
valor y invertido se convierte en in valor y medido desde la parte inferior de la pantalla
mediante el clculo:

y = ymax yinvert

B.1

En algunos paquetes de aplicacin, el origen de las coordenadas de pantalla puede


situarse en una posicin arbitraria, como por ejemplo el centro de la pantalla.

Sistemas de referencia cartesianos bidimensionales


estndar
Utilizamos sistemas cartesianos en posicin estndar para las especificaciones en
coordenadas universales, en coordenadas de visualizacin y para otras referencias dentro de
la pipeline de visualizacin bidimensional. Las coordenadas en estos sistemas de referencias
pueden ser positivas o negativas, con cualquier rango de valores. Para mostrar una vista de
una imagen bidimensional, designamos una ventana de de recorte y un visor con el fin de
mapear la seccin de la imagen sobre las coordenadas de pantalla.
Graficacin
241

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Apndice B

Coordenadas polares en el plano xy


Un sistema cartesiano bidimensional frecuentemente es el sistema de referencia en
coordenadas polares (figura B.2), en el que las coordenadas se especifican mediante una
distancia radial r con respecto a un eje de coordenadas y un desplazamiento angular con
respecto a la horizontal. Los desplazamientos angulares positivos se definen en el sentido
contrario a las agujas del reloj, mientras que los desplazamientos angulares negativos se
definen en el sentido de las agujas del reloj.

Fig. B.2. Sistema de referencia en coordenadas polares, formado


mediante crculos concentricos y lneas radiales.

eje y
P

y
r
!
x

eje x

Fig. B.3.Relacin entre coordenadas polares y cartesianas

La relacin entre las coordenadas cartesianas y polares se muestra en la figura B.3.


Considerando el tringulo recto de la figura B.4 y utilizando la definicin de las funciones
trigonomtricas, podemos realizar la transformacin de coordenadas polares a coordenadas
cartesianas mediante las expresiones:
Graficacin
242

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Apndice B

x = r cos , y = r sin

B.2.

La transformacin inversa, de coordenadas cartesianas y polares es:


B.3.

r = x 2 + y2
Los valores angulares pueden medirse en grados o unidades adimensionales (radianes).

Un radian se define como el ngulo subtendido por un arco circular que tenga una longitud
igual al radio del crculo. Esta definicin se ilustra en la figura B.5, que muestra dos lneas
que se intersectan en un plano y un crculo centrado en el punto de interseccin P. Para
cualquier crculo centrado en P, el valor del ngulo en radianes est dado por el cociente:
B.4.

s
= (radianes)
r
r
!

P
y

Fig. B.4. Tringulo recto con hipotenusa r, lados x e y y un ngulo


interior

s
!
P
r

Fig. B.5. Un ngulo subtendido por un arco circular de longitud s


y radio r.
Graficacin
243

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Apndice B

Donde s es la longitud del arco circular que subtienden a y r es el radio del crculo. La
distancia angular total alrededor del punto P es la longitud del permetro del circulo (2pr)
dividida por r, lo que es igual a 2p radianes. Si hablamos en grados, una circunferencia se
divide en 360 arcos de igual longitud, por lo que cada arco subtiende un ngulo de 1 grado.
Por tanto, 360 = 2 radianes.
Pueden utilizarse otras cnicas, adems de los crculos, podemos especificar las
coordenadas. Por ejemplo, utilizando elipses concntricas en lugar de crculos, podemos
especificar los puntos en coordenadas elpticas, de forma similar, pueden aprovecharse
otros tipos de simetras para definir coordenadas planas hiperblicas o parablicas.

Sistema de referencia cartesianos tridimensionales


estndar
La figura B.6 muestra la orientacin convencional para los ejes de coordenadas en un
sistema de referencia cartesiano tridimensional. Decimos que este tipo de sistema cumple la
regla de la mano derecha, porque el pulgar de la mano derecha apunta en la direccin z
positiva si nos imaginamos encerrando el eje z al curvar los dedos desde el eje x positivo
hacia el eje y positivo (abarcando 90) como se ilustra en la figura B.6.
En la mayora de los programas infogrficos, las descripciones de los objetos y otros
tipos de coordenadas

se especifican mediante coordenadas cartesianas que cumplen la

regla de la mano derecha.


eje y

eje y

y
P
z

x
eje x

eje z

(a)

eje x

eje z

(b)

Fig. B.6. Coordenadas de un punto P en la posicin (x, y, z) en un


sistema de referencia cartesiano estndar que cumple con la
Graficacin
244

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Apndice B

regla de la mano derecha.

Los sistemas de referencia cartesianos son sistemas de coordenadas ortogonales, lo


que simplemente significa que los ejes de coordenadas son perpendiculares entre s.
Asimismo, en los sistemas de referencia cartesianos, los ejes son lneas rectas. Aunque
tambin los sistemas de coordenadas con ejes resultan tiles en muchas aplicaciones. La
mayora de dichos sistemas son tambin ortogonales, en el sentido de que las direcciones
de los ejes en cualquier punto del espacio son mutuamente perpendiculares.

Coordenadas de pantalla cartesianas tridimensionales


Cuando se muestra una vista de una escena tridimensional sobre un monitor de vdeo,
se almacena informacin de profundidad para cada posicin de pantalla. La posicin
tridimensional que corresponde a cada punto de pantalla, suele estar referenciada mediante
un sistema que cumple la regla de la mano izquierda como se muestra en la figura B.7.
y

y
z

(a)

(b)

Fig. B.7. Sistema de coordenadas cartesianas que cumple con la


regla de la mano izquierda, superpuesto sobre la superficie de
un monitor de vdeo.

En este caso, el pulgar de la mano izquierda apunta en la direccin z positiva si nos


imaginamos rodeando el eje z d modo que los dedos de la mano izquierda vayan desde el
eje x positivo hasta el eje y positivo abarcando 90. Los valores de z positivos indican
posiciones situadas detrs de la pantalla para cada punto en el plano xy, y el valor de z se
incrementar a medida que los objetos se alejen del observador.
Graficacin
245

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Apndice B

B.2. Puntos y vectores


Existe una diferencia fundamental entre el concepto de punto geomtrico y el
concepto de vector. Un punto es una posicin especificada mediante sus coordenadas en
algn sistema de referencia. Un vector, por el contrario, tiene propiedades que son
independientes del sistema de referencia concreto que elijamos.

Propiedades de los puntos


La figura B.8 ilustra la especificacin de un punto bidimensional P mediante sus
coordenadas en dos sistemas de referencia distintos. En el sistema A, el punto tiene unas
coordenadas que estn dadas por el par coordenado (x, y) y su distancia con respecto al
origen es

x 2 + y 2 . En el sistema B, el mismo punto tiene coordenadas (0, 0) y la distancia

hasta el origen de coordenadas del sistema es 0.

P
Sistema B

0B

0A

Sistema A

Fig. B.8. Coordenadas de un punto P en dos sistemas de


referencia cartesianos distintos

Propiedades de los vectores


En un determinado sistema de coordenadas, podemos definir un vector como la
diferencia entre dos puntos. As, para os puntos bidimensionales P1 y P2 en la figura B.9,
podemos especificar un vector como:

Graficacin
246

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Apndice B

V = P2 P1
= (x2 x1 , y2 y1 )

B.5.

= (Vx ,Vy )
Donde las componentes cartesianas (o elementos cartesianos) Vx y Vy son las

proyecciones de V sobre los ejes x e y. Tambin podramos obtener estas mismas


componentes del vector utilizando otros dos puntos dentro del sistema de coordenadas. De
hecho, existe un nmero infinito de parejas de puntos que nos dan las mismas componentes
de vector, y los vectores se suelen definir mediante un nico punto relativo al sistema de
referencia actual. Por tanto, un vector no tiene una posicin fija dentro de un sistema de
coordenadas, asimismo, si transformamos la representacin de V a otro sistema de
referencia, las coordenadas de las posiciones P1 y P2 cambiarn, pero las propiedades
bsicas del vector no sufrirn modificacin.

P2

y2
V
y1

P1
X1

X2

Fig. B.9. Un vector bidimensional V definido en un sistema de


referencia cartesiano como la diferencia entre dos puntos.

Podemos describir un vector como un segmento de lnea dirigido que tiene dos
propiedades fundamentales: modulo y direccin. Para el vector bidimensional de la figura B.
9, calculamos el mdulo del vector utilizando el teorema de Pitgoras, que nos da la
distancia entre sus dos extremos segn la direccin del vector:
B.6.

V = Vx2 + Vy2
Podemos especificar la direccin del vector de diversas formas. Por ejemplo, podemos

proporcionar la direccin en trminos del desplazamiento angular con respecto a la


horizontal de forma siguiente:
Graficacin
247

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Apndice B

B.7.

Vy
= tan 1
Vx
z

"
#

!
x

Fig. B.10. ngulos directores de , , .

Un vector tiene el mismo mdulo y direccin independientemente de dnde situemos


el vector dentro de un cierto sistema de coordenadas. Asimismo, el mdulo del vector es
independiente del sistema de coordenadas que elijamos. Sin embargo, si transformamos el
vector a otro sistema de referencia, los calores de esos componentes y si direccin dentro
de ese sistema de referencia cartesiano rotado, de modo que la direccin del vector est
definida ahora segn la nueva direccin y.
Para una representacin cartesiana tridimensional de un vector, V = (Vx, Vy, Vz), el
mdulo del vector ser
B.8.

V = Vx2 + Vy2 + Vz2


Y podemos dar la direccin del vector en trminos de los angulares directores, , , y

, que el vector forma con cada uno de los ejes de coordenadas positivos. Podemos calcular
estos ngulos de la forma siguiente:
B.9.

cos =

Vx
,
V

cos =

Vy
V

cos =

Vz
V

Graficacin
248

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Apndice B

Los calores de cos , cos , y cos se denominan cosenos directores del vector. En
realidad solo hace falta especificar dos e los cosenos directores para proporcionar la
direccin de V, ya que:
B.10.

cos 2 + cos 2 + cos 2 = 1


Los vectores se utilizan para representar cualquier tipo de magnitud que tenga como

propiedades un mdulo y una direccin. Dos ejemplos comunes son la fuerza y la velocidad
(figura B.11.). Una fuerza puede considerarse como la intensidad con que se tira o empuja
en una direccin concreta. Un vector de velocidad especifica la rapidez con la que un objeto
se mueve en cierta direccin.

Tierra

Sol

Fig. B.11. Un vector de fuerza gravitatoria F y un vector de


velocidad v.

Suma de vectores y multiplicacin escalar


Por

definicin,

la

suma

de

vectores

se

obtiene

sumando

las

componentes

correspondientes:

V1 + V2 = (V1x + V2 x ,V1y + V2 y ,V1z ,V2 z )

B.11.

La figura B.12 ilustra geomtricamente la suma bidimensional de vectores. Obtenemos


la suma de vectores colocando el extremo inicial sobre el extremo final del otro vector y
dibujando la representacin del vector suma desde el extremo inicial del primer vector hasta
el extremo final del segundo la suma de un vector escalar no est definida, ya que un
Graficacin
249

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Apndice B

escalar slo tiene un valor numrico, mientras que un vector tiene n componentes
numricas en un espacio n-dimensional.
y

y
V2

V2

V1 + V2

V1

V1

(a)

(b)

Fig. B.12. Dos vectores (a) pueden sumarse geomtricamente


situando los dos vectores uno a continuacin de otro (b) y
dibujando el vectores resultante desde el extremo inicial del
primer vector hasta el extremo final del segundo vector.

La multiplicacin de un vector escalar s se define como

sV = (sVx , sVy , sVz )

B.12.

Por ejemplo, si el parmetro escalar s tiene el valor 2, cada componente de V se dobla


y el mdulo se dobla tambin.
Tambin podemos combinar vectores utilizando procesos multiplicativos, de diversas
formas. Un mtodo muy til consiste en multiplicar los mdulos de los dos vectores, de
modo que este producto se utilice para formar otro vector o una magnitud escalar.

Producto escalar de dos vectores


Podemos obtener un valor escalar a partir de dos vectores mediante el clculo
B.13.

V1 iV2 = V1 V2 cos ,

Donde es el ms pequeo de los dos ngulos que pueden definirse entre las
direcciones de ambos vectores (figura B.13.). Este esquema de multiplicacin se denomina
producto escalar de dos vectores. Tambin se denomina producto interno, particularmente
al hablar de productos escalares en el anlisis tensorial.

Graficacin
250

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Apndice B

V2

V1

!
s!
|V2|co
Fig. B.13. El producto escalar de dos vectores se obtiene
multiplicando las componentes paralelas.

La ecuacin B.13. es vlida en cualquier sistema de coordenadas y puede interpretarse


como el producto de las componentes paralelas de los dos vectores, donde |v2| cos es la
proyeccin del vector V2 en la direccin de V1.
Adems de expresar el producto escalar en forma independiente del sistema de
coordenadas, podemos tambin expresar este clculo en un sistema de coordenadas
especifico. Para un sistema de referencia cartesiano, el producto escalar se calcula como:

V1 iV2 = V1xV2 x + V1yV2 y + V1zV2 z

B.14.

El producto escalar es una generalizacin del teorema de Pitgoras y el producto


escalar de un vector por s mismo da como resultado el cuadrado del mdulo del mismo
vector.de igual manera, el producto escalar de dos vectores es cero y si y solo si los dos
vectores son perpendiculares (ortogonales).
El producto escalar es conmutativo

V1 iV2 = V2 iV1

B.15.

porque esta operacin produce un valor escalar. Asimismo, el producto escalar es


distributivo con respecto a la suma de vectores.
B.16.

V1 i(V2 + V3 ) = V1 iV2 + V1 iV3

Graficacin
251

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Apndice B

Producto vectorial de dos vectores


Podemos utilizar la siguiente frmula con el fin de combinar dos vectores para producir
otro vector.
B.17.

V1 V2 = u V1 V2 sin ,

El parmetro u en esta expresin es vector unitario perpendicular tanto a V1 como a


V2 (figura B.14. ). La direccin de u esta determinada por la regla de la mano de la mano
derecha: rodeamos un eje perpendicular al plano que contiene a V1 y a V2 de modo que los
dedos de la mano derecha se curven de V1 a V2.
V1V2
V2
u

V1
Fig. B.14. El producto vectorial de dos vectores es un vector que
apunta en una direccin perpendicular a los dos vectores
originales y con un mdulo igual al rea del paralelogramo
sombreado.

El vector u estar entonces en la direccin a la que apunta el dedo pulgar. Este clculo
se denomina producto vectorial de do vectores y la ecuacin a.20 es vlida en cualquier
sistema de coordenadas. El producto vectorial de dos vectores es otro vector perpendicular
al plano de esos dos vectores, y el mdulo del producto vectorial es igual al rea del
paralelogramo formado por dos vectores.
Tambin podemos expresar el producto vectorial en trminos de las componentes de
los vectores dentro de un sistema de referencia especfico. En un sistema de coordenadas
cartesianas, calculamos las componentes del producto vectorial como:
B.18.

V1 V2 = (V1yV2 z V1zV2 y ,V1zV2 x V1xV2 z ,V1xV2 y V1yV2 x )

Graficacin
252

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Apndice B

Si designamos los vectores unitarios segn los ejes x, y, z como ux, uy, uz, podemos
escribir el producto vectorial en trminos de las componentes cartesianas utilizando una
notacin de determinantes:

u x u y uz
V1 V2 = V1x V1y V1z
V2 x V2 y V2 z

B.19.

El producto vectorial de dos vectores paralelos cualesquiera es cero. Por tanto, el


producto vectorial de un vector por s mismo es cero. De igual manera, el producto vectorial
no es conmutativo sino anticonmutativo,
B.20.

V1 V2 = u V1 V2 sin ,

Tambin se verifica que el producto vectorial no es asociativo, es decir,

V1 (V2 V3 ) (V1 V2 ) V3

B.21.

Sin embargo, el producto vectorial es distributivo con respecto a ala suma y resta de
vectores:

V1 (V2 + V3 ) = (V1 V2 ) + (V1 V3 )

B.22.

B.3. Matrices
Una matriz es una disposicin rectangular de magnitudes (valores numricos,
expresiones o funciones), denominados elementos de la matriz. Algunos ejemplos de
matrices son:

3.60 0.01 2.00


5.46 0.00 1.63 ,

B.23.

ex

e2 x

x
,
x2

[a

a2

a3 ] ,

x
y

z

Las matrices se identifican de acuerdo con el nmero de filas y el nmero de columnas,


para los ejemplos anteriores, las matrices de izquierda a derecha son 2 por 3, 3 por 2, 1 por
3 y 3 por 1. Cuando el nmero de filas es igual al nmero de columnas, como en el segundo

Graficacin
253

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Apndice B

ejemplo, la matriz se denomina matriz cuadrada. En general, podemos escribir una matriz r
por c como:

m11
m
21
M =

mr1

B.24.

m12
m22

mr 2

... m1c
m2c

mrc

Donde mjk representa los elementos de la matriz M. El primer subindice de cada


elemento proporciona el nmero de fila y el segundo subndice proporciona el nmero de
columna.
Una matriz con una nica fila o una nica columna. En general una matriz puede
considerarse como una coleccin de vectores fila o como una coleccin de vectores
columna.
Cuando expresamos diversas operaciones en forma matricial el convenio matemtico
estndar consiste en representar un vector mediante una matriz columna. De acuerdo con
este convenio, escribiremos la representacin matricial de un vector tridimensional en
coordenadas cartesianas como:

Vx

V = Vy
Vz

B.25.

Aunque utilicemos esta representacin matricial estndar tanto para los puntos como
para

los

vectores,

existe

una

distincin

importante

entre

ambos

conceptos.

La

representacin vectorial de un punto siempre asume que el vector est definido desde el
origen hasta dicho punto y la distancia del punto al origen no er invariante cuando
cambiemos de un sistema de coordenada a otro. Asimismo, no podemos sumar puntos y
tampoco podemos aplicar a los puntos operaciones vectoriales, como el producto escalar y
el producto vectorial.

Graficacin
254

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Apndice B

Multiplicacin por un escalar y suma de matrices


Para multiplicar una matriz M por un valor escalar s, multiplicamos cada elemento mjk
por dicho escalar. Como ejemplo, si

Entonces,

1 2 3
M =

4 5 6

3 6 9
3M =

12 15 18
La suma de matrices solo est definida para aquellas matrices que tengan el mismo
nmero de filas r y el mismo nmero de columnas c. Para dos matrices cualesquiera r por c,
la suma se obtiene sumando los correspondientes elementos. Por ejemplo,

1 2 3 0.0 1.5 0.2 1.0 3.5 3.2


4 5 6 + 6.0 1.1 10.0 = 2.0 6.1 4.0

Multiplicacin de matrices
El producto de dos matrices se define como una generalizacin del producto escalar de
vectores. Podemos multiplicar una matriz m por n A por una matriz p por q B para formar la
matriz producto AB, supuesto que el nmero de columnas de A sea igual al nmero de filas
de B. En otras palabras, debe cumplirse que n = p. Entonces se obtiene la matriz producto
formando las sumas de los productos de los elementos de los vectores fila de A por los
elementos correspondientes de los vectores columna de B. As, para que el siguiente
producto:

C = AB

B.26.

Obtenemos una matriz m por q C cuyos elementos se calculan como

Graficacin
255

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Apndice B

Cij = aik bkj

B.27.

k =1

En el siguiente ejemplo, una matriz 3 por 2 se postmultiplica por una matriz 2 por 2,
para generar una matriz producto 3 por 2

0 1
0 1 + (1) 3 0 2 + (1)4 3 4
5 7 1 2 = 5 1 + 7 3
5 2 + 7 4 = 26 38

3 4
2 8
2 1 + 8 3 2 2 + 8 4 22 28
La multiplicacin de vectores en notacin matricial produce el mismo resultado que el
producto escalar, supuesto que el primer vector se exprese como un vector fila y el
segundo vector se exprese como un vector columna. Por ejemplo:

4
[1 2 3] 5 = [ 32 ]
6
Este producto de vectores da como resultado una matriz con un nico elemento (una
matriz 1 por 1). Sin embargo, si multiplicamos los vectores en orden inverso, obtendremos
la siguiente matriz 3 por 3:

4
4 8 12
5 1 2 3 = 5 10 15
]
[

6
6 12 18
Como ilustran los dos productos de vectores anteriores, la multplicacin de matrices
no es conmutativa por regla general. Es decir

AB BA

B.28.

Pero la multiplicacin de matrices es distributiva con respecto a la suma de matrices:


B.29.

A(B + C) = AB + AC

Graficacin
256

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Apndice B

Transpuesta de una matriz


T

La transpuesta M de una matriz se obtiene intercambiando las filas y columnas de la


matriz. Por ejemplo,

1 4
a
T
1 2 3
T


4 5 6 = 2 5 ,[ a b c ] = b

3 6
c

B.30.

Para un producto de matrices la transpuesta es:


B.31.

(M 1 M 2 )T = M 2T M 1T

Determinante de una matriz


Si tenemos una matriz cuadrada, podemos combinar los elementos de una matriz para
generar un nico nmero denominado determinante de la matriz. Las evaluaciones de
determinantes resultan muy tiles a la hora de analizar y resolver un amplio rango de
problemas. Para una matriz 2 por 2 A, el determinante de segundo orden se define como

det A =
B.32.

a11
a21

a12
= a11a22 a12 a21
a22

Los determinantes de orden superior se obtienen recursivamente a partir de los


valores de los determinantes de orden inferior para calcular un determinante de orden 2 o
superior, podemos seleccionar cualquier columna k de una matriz de n por n y calcular el
determinante como:
n

det A = (1) j + k a jk det A jk

B.33.

j =1

Donde detAjk es el determinante (n-1)por(n-1) de la submatriz que se obtiene a partir


de A borrando la fila j-sima y la columna k-sima. Alternativamente podemos seleccionar
cualquier fila j y calcular el determinante como:
Graficacin
257

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Apndice B

det A = (1) j + k a jk det A jk

B.34.

k =1

La evaluacin de determinantes para matrices de gran tamao (por ejemplo, n>4)


puede realizarse de manera ms eficiente utilizando mtodos numricos. Una forma de
calcular un determinante consiste en descomponer una matriz en dos factores: A=LU,
donde todos los elementos de la matriz L por encima de la diagonal son cero.
Entonces, podemos calcular el producto de las diagonales tanto para L como para U y
obtener detA multiplicando los dos productos diagonales. Este mtodo se basa en la
siguiente propiedad de los determinantes:

det(AB) = (det A)(det B)

B.35.

Inversa de una matriz


Con las matrices cuadradas, podemos obtener una matriz inversa si y solo si el
determinante de la matriz es distinto de cero. Si tiene una inversa, se dice que la matriz es
una matriz no singular. En caso contrario, la matriz se denomina matriz singular. En la
mayora de las aplicaciones prcticas en las que las matrices representan operaciones
fsicas, lo normal es que exista la inversa.
-1

La inversa de una matriz (cuadrada) n por n M se designa M , cumplindose que:


B.36.

MM 1 = M 1 M = I
Donde I es la matriz identidad. Todos los elementos diagonales de I tiene el valor 1 y

todos los dems elementos (los no situados en la diagonal) son cero.


Los elementos de la matriz inversa pueden calcularse a partir de los elementos de M
mediante la frmula:

B.37.

1
jk

m =

(1) j + k det M kj
det M

Graficacin
258

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Donde m
M

-1

-1

jk

Apndice B

es el elemento es el elemento en la fila j-sima y la columna k-sima de

y Mjk es la submatriz (n-1) por (n-1) que se obtiene al borrar la fila k-sima y la columna

j-sima de la matriz M. Para valores de n, podemos calcular de manera ms eficiente los


valores de los determinantes y los elementos de la matriz inversa utilizando mtodos
numricos.

Representaciones no paramtricas
Cuando escribimos las descripciones de los objetos directamente en trminos de las
coordenadas correspondientes al sistema de referencias que estamos utilizando, la
representacin se denomina no paramtrica. Por ejemplo, podemos describir una superficie,
con cualquiera de las siguientes funciones cartesianas:

f1 (x, y, z) = 0,

B.38.

o z = f2 (x, y)

La primera forma de la ecuacin B.38. se denomina frmula implicita de la superficie,


mientras que la segunda forma se denomina representacin explcita. En la representacin
explcita, x e y se denominan variables independientes y z se denomina variable
dependiente.
De forma similar, podemos representar una lnea curva tridimensional en forma no
paramtrica como la interseccin de dos funciones de superficies, o bien podemos
representar la curva con la pareja de funciones:

y = f (x)

B.39.

z = g(x)

con la coordenada x como variable independiente. Los valores de las variables


dependientes y y z se determinan entonces a partir de las ecuaciones B.39 asignando
valores a x para algn nmero prescrito de intervalos.
Las representaciones no paramtricas resultan tiles para describir los objetos de un
cierto sistema de referencia, pero presentan algunas desventajas a la hora de utilizarlas en
algoritmos grficos.

Graficacin
259

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Apndice B

Si queremos obtener una grfica suave, debemos cambiar la variable independiente


cuando la primera derivada (pendiente) de f(x) o g(x) sea superior a 1. Esto requiere
controlar de manera continua los valores de las derivadas para determinar cundo es
necesario cambiar los roles de las variables dependientes e independientes. Asimismo, las
ecuaciones B.39. proporcionan un formato muy engorroso para representar funciones
mutivaluadas, por ejemplo, la ecuacin implcita de un crculo centrado en el origen del plano
xy es:

x 2 + y2 r 2 = 0
Y la ecuacin explcita de y es la funcin multivaluada:

y = r2 x2
En general, una representacin mas conveniente para describir los objetos en los
algoritmos grficos es en trminos de ecuaciones paramtricas

Representaciones paramtricas
Podemos clasificar los objetos segn el nmero de parmetros necesarios para
describir las coordenadas de los mismos. Una curva, por ejemplo, en un sistema de
referencia cartesiano, se clasifica como un objeto eucldeo unidimensional, mientras que una
superficie es un objeto eucldeo bidimensional. Cuando se proporciona la descripcin de un
objeto en trminos de su parmetro de dimensionalidad, la descripcin se denomina
representacin paramtrica.
La descripcin cartesiana de los puntos situados a lo largo de la trayectoria de una
curva puede proporcionarse en forma paramtrica utilizando la siguiente funcin vectorial

P(u) = (x(u), y(u), z(u))

B.40.

donde cada una de las coordenadas cartesianas es una funcin del parmetro u. En la
mayora de los casos, podemos normalizar las tres funciones de coordenadas de modo que
el parmetro y vare en el rango comprendido entre 0 y 1.0. Por ejemplo, un crculo en el
plano xy con un radio r y con centro en el origen de coordenadas puede definirse en forma
paramtrica mediante las siguientes tres funciones:
Graficacin
260

I n s t i t u t o T e c n o l g i c o d e M o r e l i a

Apndice B

x(u) = r cos(2 u), y(u) = r sin(2 u), z(u) = 0, 0 u 1

B.41.

Puesto que esta curva est definida en el plano xy, podemos eliminar la funcin z(u),
que tiene el valor constante de 0.
De forma similar, podemos representar las coordenadas de una superficie utilizando la
siguiente funcin vectorial cartesiana:

P(u, v) = (x(u, v), y(u, v), z(u, v))

B.42.

Cada una de las coordenadas cartesianas es ahora funcin de los dos parmetros de la
superficie u y v. Una superficie esfrica con radio r y con centro en el origen de
coordenadas, por ejemplo, puede describirse mediante las ecuaciones:

x(u, v) = r cos(2 u)sin( v)


y(u, v) = r sin(2 u)sin( v)
z(u, v) = r cos( v)

B.43.

El parmetro u define lneas de longitud constante sobre la superficie, mientras que el


parmetro v describe lneas de latitud constante. Las ecuaciones paramtricas, de nuevo, se
suelen normalizar para asignar a u y a v valores en el rango comprendido entre 0 y 1.0.

Graficacin
261

You might also like