Академический Документы
Профессиональный Документы
Культура Документы
Euclides (300- 250 A.C.), su frmula de geometra provee una base para los
conceptos grficos.
Filippo Brunelleschi (1377 - 1446), arquitecto y escultor, es reconocido por su
uso de la perspectiva.
Alexander S. Douglas desarrolla en 1952 Nought and crosses. El juego era una
versin computerizada del tres en raya que se ejecutaba sobre el EDSAC.
Los 1960s
Se puede decir que la historia comienza con el Proyecto Whirlwind y el
Whirlwind inici como un esfuerzo para construir un
sistema
computacional SAGE que fue diseado para apoyar el estado de alerta militar. El Proyecto
simulador de vuelo y SAGE para
proveer un sistema de defensa areo en los Estados Unidos como proteccin contra un
ataque nuclear. La estacin de trabajo SAGE tena un monitor vectorial y lpiz luminoso
que los operadores usaban para dibujar planes de vuelo sobre las regiones de los Estados
Unidos. En la actualidad, el Museo de Computacin de Boston (Boston Computer Museum)
exhibe una estacin de trabajo SAGE. El monitor es una pantalla de radar con un recuadro
alrededor de la regin que esta siendo escaneada. Los lpices luminosos son como los viejos
taladros de metal. En la exhibicin Hollywood and Vine de IBM en Kingston New York se
muestra una computadora SAGE.
Graficacin
2
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 Capitulo 1. Introduccin a la graficacin
Figura 1.1.Computadora de uso militar SAGE
Adems de el inicio de la era de las primeras computadoras de tubos de vaco, los
1940s vieron nacer el transistor en los Laboratorios Bell (Bell Labs) en 1947. En 1956 la
primera computadora de transistores se construyo en el MIT.
IBM, Sperry-Rand, Burroughs y otras pocas compaas de computadoras
principios de los 1960s. Las computadoras tenan unos pocos kilobytes
hablar de sistemas operativos o monitores que desplegaran grficos.
Los perifricos eran tarjetas perforadas de Hollerit, impresoras de lneas y plotters de
papel en rollo. Los nicos lenguajes de programacin eran ensamblador, FORTRAN y Algol.
Las funciones grficas y los calendarios Snoopy eran los nicos grficos hechos hasta
entonces.
existan a
de memoria, ni
Fig. 1.2.Tarjeta perforada de Hollerit
Graficacin
3
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 Capitulo 1. Introduccin a la graficacin
En 1963 Ivan Sutherland present su artculo Sketchpad en el Summer Joint
Computer Conference. Sketchpad permita el diseo interactivo en un monitor de grficos
de vectores con un lpiz luminoso como dispositivo de entrada. La mayora de la gente
ubica este hecho en la historia como el origen de las grficas por computadora. Sketchpad
se considera el abuelo de los programas CAD actuales y era muy avanzado para su poca al
usar una interfaz grfica de usuario, GUI.
Fig. 1.3.Ivan Sutherland trabajando en el MIT
El sistema Sketchpad fue creado en el Laboratorio Lincoln del MIT sobre un ordenador
TX-2, una de las mejores mquinas de entonces pues contaba con 320Kb de memoria base
y 8Mb de memoria externa en forma de cintas
grficos, estaba dotado con un monitor de
puntero ptico y un remedo de ratn.
Jack Bresenham nos ense como dibujar lineas en un dispositivo raster a mediados
de los 1960s. Despus extendi su mtodo para dibujar crculos. Larry Roberts seal la
utilidad de las coordenadas homogneas, las matrices 4 x 4 y los algoritmos de deteccin
de lneas ocultas. Stevens Coons introdujo las superficies paramtricas y desarroll los
primeros conceptos de diseo geomtrico asistido por computadora.
El trabajo de Pierre Bzier en curvas paramtricas tambin se hizo pblico. Andrew
Appel desarroll en IBM algoritmos para superficies ocultas y sombras que fueron
precursoras de el trazado de rayos (ray tracing). La transformada rpida de Fourier fue
descubierta por Cooley y Tukey. Este algoritmo nos permite entender mejor las seales y
es fundamental para el desarrollo de tcnicas de anti-alisado.
magnticas. En cuanto a dispositivos
siete pulgadas 10241024, adems de un
Graficacin
4
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 Capitulo 1. Introduccin a la graficacin
En 1963, Douglas Englebart invent el Mouse en los laboratorios de Xerox PARC. Este
mouse usaba dos ruedas perpendiculares entre ellas: la rotacin de
trasladada en movimiento a lo largo de un eje en el plano.
cada rueda era
Fig. 1.4.Primer mouse sujetado por su inventor, Douglas Englebart
Aos ms tarde, la corporacin Evans & Sutherland y General Electric comenzaron a
construir simuladores de vuelo con grficos rasterizados de tiempo real.
En 1966 Ralph Baer empez a desarrollar junto a Bob Tremblay y Ted Dabney un
proyecto de videojuego llamado Fox and Hounds dando inicio al videojuego domstico. Este
proyecto evolucionara hasta convertirse en la Odyssey, el primer sistema domstico de
videojuegos lanzado en 1972.
El algoritmo de sombreado fue creado por Gouraud y Phong en la Universidad de Utah
(University of Utah) cuando en 1968 la universidad le pidi a David Evans que dirigiera un
programa de investigacin en grficos por computadora; adems del sombreado, otros
algoritmos se desarrollaron tales como el de iluminacin.
Phong tambin introdujo un modelo de reflexin que inclua rayos de luz especulares.
Se hicieron demostraciones de animacin basada en cuadros clave para grficos en 3D .
Xeroc PARC desarroll un programa de dibujo o editor de mapa de bits llamado Markup para
la computadora Alto.
Ed Catmull introdujo el rendereo paramtrico, el algoritmo de z-buffer y mapeo de
textura. En esa misma poca BASIC, C y Unix fueron desarrollados en
Dartmouth y Bell.
Graficacin
5
los laboratorios
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 Capitulo 1. Introduccin a la graficacin
Los 1970s
A principios de los 1970s el Sistema de Imgenes de Evans & Sutherland era una
computadora
80186, etc.
Los videojuegos como arcade nacieron en 1971 cuando Nolan Bushnell comenz a
comercializar Computer Space, una versin de Space War, en Estados Unidos, aunque es
posible que se le adelantara Galaxy War otra versin arcade de Space
principios de los 70 en el campus de la universidad de Stanford.
La eclosin de los videojuegos lleg con Pong, un videojuego muy similar Tennis for
Two y diseador por Al Alcorn para Bushnell. El juego se present en 1972 y fue la piedra
angular del videojuego como industria. Durante los aos siguientes se implantaron
numerosos avances tcnicos en los videojuegos (destacando los microprocesadores y los
chips de memoria), se pusieron a la venta juegos como Space Invaders (Taito) o Asteroids
(Atari) y sistemas como el Atari 2600.
War aparecida a
high-end de grficos. El primer microprocesador para computadoras
fu creado en Intel en 1971, este era de 8 bits e inicio la serie de los 8: 8088, 8086,
Fig. 1.5.Ipod con el juego Pong
Graficacin
6
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 Capitulo 1. Introduccin a la graficacin
Fig. 1.6.Consola de video juegos Atari 2600
La Altair 8800 de MITS fue un microcomputador diseado desde 1975, basado en el
CPU Intel 8080A. Vendido como un kit a travs del la revista
diseadores proyectaron vender solamente algunos
la Altair es ampliamente
Popular Electronics, los
cientos a los aficionados, y fueron
sorprendidos cuando vendieron sobre diez veces esa cantidad en el primer mes. Hoy en da,
reconocida como la chispa que condujo a la revolucin del
computador personal de los aos siguientes: El bus de computador diseado para la Altair
se convirti en un estndar de facto conocido como el bus S-100. El primer lenguaje de
programacin para la mquina fue el Altair BASIC, escrito por Bill Gates y Paul Allen, quienes
inmediatamente despus fundaran Microsoft.
Fig. 1.7.Computadora Altair 8800
En 1976 la computadora Apple I fue el primer xito comercial de la computacin
personal. El Apple I fue uno de los primeros computadores personales, y el
Graficacin
7
primero en
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 Capitulo 1. Introduccin a la graficacin
combinar un teclado con un microprocesador y una conexin a un monitor. El Apple I fue
diseado por Steve Wozniak originalmente para uso personal. Un amigo de Steve Wozniak,
Steve Jobs, tuvo la idea de vender el computador. Fue vendido como el primer producto de
Apple, comenzando en abril de 1976. Su precio al por menor era US$666.66. Cerca de 200
unidades fueron producidas.
Fig. 1.8.Computadora Apple I
Es comn pensar que el primer filme que us grficas por computadora es 2001: Una
odisea en el espacio (1968), la cual pretenda mostrar cmo las
volveran ms grficas en el futuro. Sin embargo, los efectos
con ptica y efectos convencionales.
Quiz el primer uso de las grficas por computadora, especficamente la ilustracin de
grficas por computadora fue en Futureworld (1976), que
(University of Utah).
incluy la animacin de un
rostro y mano humanos producida por Ed Catmull y Fred Parke en la Universidad de Utah
computadoras se
por computadora en esa
pelcula fueron animados a mano y las secuencias de efectos especiales fueron producidas
Los 1980s
La IBM PC comenz a ser vendida en agosto de 1981. La frase "computadora
personal" era de uso corriente antes de 1981, y fue usada por primera vez en 1972 para
denominar al Xerox PARC's Alto. Sin embargo, debido al xito del IBM PC, lo que haba sido
Graficacin
8
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 Capitulo 1. Introduccin a la graficacin
un trmino genrico lleg a significar especficamente una computadora compatible con las
especificaciones de IBM.
La PC original fue un intento de IBM para entrar en el mercado de los ordenadores
domsticos, entonces dominado por el Apple II de Apple Computer y varias mquinas con
CP/M. En lugar de utilizar el proceso de diseo normal de IBM, el cual ya haba fallado en el
diseo de una computadora econmica (como el IBM 5100), se reuni a un equipo especial
para descartar las restricciones de la compaa e ingresar rpidamente al mercado. Al
proyecto se le dio el nombre cdigo de Project Chess (proyecto ajedrez).
Fig. 1.9.Primera computadora personal IBM
Las computadoras con Mouse, monitores rasterizados y red ethernet se
estndar en el rea acadmica, las ciencias y la ingeniera.
hicieron
Cerca de 1983,Jim Blinn introdujo los conceptos de mapeo de textura tales como el
bump mapping. El bump mapping (Correlacin de relieve), una tcnica
arrugadas y con relieve.
de perturbacin
normal(la direccin hacia donde apunta un polgono) sola simular superficies desiguales o
Graficacin
9
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 Capitulo 1. Introduccin a la graficacin
Fig. 1.10.Jim Blinn
Se introdujeron los Binary space partitioning o Particionado Binario del Espacio (BSP),
que es un mtodo para subdividir recursivamente un espacio en
mediante un rbol conocido como rbol BSP.
aplicaciones CAD.
Loren Carpenter comenz a explorar fractales en grficos por computadora a
elementos convexos
empleando hiperplanos. Esta subdivisin permite obtener una representacin de la escena
Estos se utilizan en renderizados y en las
principios de los 1980s. El es un cofundador de los Estudios de Animacin Pixar. En 1982
John Warnock desarroll el Postcript aunque Warnock es ms conocido por ser cofundador
de Adobe Systems Inc., se retir en el 2001 de la direccin de Adobe.
Fig. 1.11.John Warnok, cofundador de Adobe
En 1982 se lanz la tarjeta Hrcules, la primera tarjeta de video. Esta tarjeta se poda
Graficacin
10
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 Capitulo 1. Introduccin a la graficacin
visualizar grficos y textos simultneamente. En modo texto, soportaba una resolucin de
80x25 puntos. En tanto que en los grficos lo haca con 720x350 puntos, dicha tarjeta
serva slo para grficos de un solo color. La tarjeta Hrcules tena una capacidad total de
64k de memoria video RAM. Posea una frecuencia de refresco de la pantalla de 50HZ.
En 1983 Jobs se dio cuenta de que el futuro eran los iconos y los entornos
agradables, y los patrocin creando el Apple Lisa, primer ordenador comercial con interfaz
grfica y ratn, y posteriormente en 1984 el primer Apple Macintosh.
El 28 de junio de 1985, un par de aos despus del primer aviso de Windows en
noviembre de 1983 se lanzo Microsoft Wndows 1.0. En la caja azul
Microsoft para Windows era proporcionar un nuevo
se anunciaba una
interface grfica de Windows con las ventanas embaldosadas. La estrategia de venta de
ambiente de desarrollo y un nuevo
entorno de software en el que se utilizan imgenes de mapa de bits y un ratn.
Fig. 1.12.Ventana en la primera versin de Microsoft Windows
El aloritmo radiosity fue creado por Donald Greenberg y sus colegas en la Universidad
de Cornell. Radiosity una tcnica para la iluminacin global que usa
superficies difusas.
En 1989 Adobe Photoshop comenz a ser comercializado siendo hoy una de
aplicaciones clsicas para el manejo de imgenes. Aunque en su primera
Adobe quien recientemente compr a Macromedia.
las
la teora de
transferencia de radiacin para simular la iluminacin (reflejada) indirecta en escenas con
versin, solo
estaba disponible para Macintosh. Photoshop es uno de los productos ms vendidos por
Graficacin
11
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 Capitulo 1. Introduccin a la graficacin
Fig. 1.13.Programa Adobe Photoshop
Unix y X window eran las plataformas de eleccin para la programacin en C y C++,
pero MS-DOS comenz a crecer.
La tarjeta VGA (Video Graphics Array) fue creada en 1987 por IBM. Las estaciones de
trabajo de Silicon Graphics que soportaban rasterizado de dibujo de lneas en tiempo real se
convirtieron en el deseo de los desarrolladores de grficas. Los circuitos VLSI (Very Large
Scale Integration) para procesadores grficos y procesamiento paralelo se convirtieron en
reas de investigacin importantes a finales de los 1980s.
Los 1990s
Unix, X y Silicon Graphics Gl eran el sistema operativo, sistema de ventanas y la
Interfaz de Programacin de Aplicaciones (API, Application Programming Interface) que los
desarrolladores de grficos utilizaban a principios de los 1990s.
En 1991 las computadoras Hand-held se inventaron en HP (HewlettPackard). En 1992
OpenGL se convirti en un estndar de APIs grficas. OpenGL es una biblioteca grfica
desarrollada originalmente por Silicon Graphics Incorporated (SGI). OpenGL significa Open
Graphics Library, cuya traduccin es biblioteca de grficos abierta.
Las grficas rasterizadas sombreadas comenzaron a introducirse en las pelculas. Las
computadoras an no soportaban grficos 3D y la mayora de los programadores escriba
software para ser convertidos por escaneo o rasterizados y utilizaban algoritmos de
remocin de superficies ocultas as como trucos de animacin de tiempo real.
Graficacin
12
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 Capitulo 1. Introduccin a la graficacin
Mosaic fue creado en 1993 por Marc Andressen en la Universidad de
(University of Illinois) en el Centro Nacional para Aplicaciones Cientficas
primer navegador grfico disponible para visualizar pginas web.
Illinois
(NCSA). ue el
Fig. 1.14.Imagen del primer navegador grfico Mosaic
Con el surgimiento de Mosaic, se populariz el uso de la Web a pesar de que fue
creada aos antes. La Web naci alrededor de 1989 a partir de un proyecto del CERN, en el
que Tim Berners-Lee construy el prototipo que dio lugar al ncleo de lo que hoy es la
World Wide Web. La intencin original era
investigacin entre cientficos y permitir al
mientras lo fuera leyendo.
En esta poca, se comenzaron a utilizar los estndares de MPEG para la compresin
de video. Los sistemas dinmicos que permiten animacin con colisiones, gravedad, friccin
y causa y efecto tambin comenzaron a usarse
En 1996 sale al mercado Nintendo 64; en su primera semana de ventas en Japn,
Nintendo 64 vendi 500.000 consolas y durante su periodo de vida
30.000.000.000 consolas.
Tambin fueron lanzados varios perifricos: un micrfono que permita jugar un juego
con funciones de reconocimiento de voz, uno que permita leer cartuchos de Game Boy,
Graficacin
13
hacer ms fcil el compartir textos de
lector revisar las referencias de un articulo
alrededor de
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 Capitulo 1. Introduccin a la graficacin
una unidad de Disquetes y un cartucho que permita capturar audio y video a los disquetes.
Sin embargo el mayor problema de estos perifricos fue el poco soporte que tuvieron.
Fig. 1.15.Super Mario 64, popular videojuego para la consola
Nintendo 64
Super Mario 64 programado por Shigeru Miyamoto (para Nintendo 64) es considerado
por muchos el mejor juego de plataformas de todos los tiempos y su sistema de juego es la
base de la mayor parte de los juegos de plataformas 3D de hoy en da. Este juego cre el
primer sistema de control de cmaras en un juego en 3 dimensiones.
Fig. 1.16.Shigeru Miyamoto, creador de Supermario 64
Las tarjetas grficas tales como la 3DFX de Nvidia se comenzaron a popularizar en
1995. Las tarjetas Nvidia utilizan el puerto AGP inventado por Intel en 1996 como solucin
a los cuellos de botella que se producan en las tarjetas grficas que usaban el bus PCI.
El formato de DVD se anuncio en septiembre de 1995; la especificacin oficial fue
desarrollado por un consorcio de 10 compaas: Hitachi, JVC, Matsushita, Mitsubishi, Philips,
Graficacin
14
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 Capitulo 1. Introduccin a la graficacin
Pioneer, Sony, Thomson, Time Warner, y Toshiba . Al inicio, existan varias propuestas de
diferentes compaas y debido a la incompatibilidad se realiz el estndar.
La realidad virtual y el VRML (Virtual Reality Modeling Language) se convirtieron reas
de investigacin importante. Los PDAS, Palms y los flat panel se introdujeron al final de los
1990s con gran xito.
2000 - a la fecha
En la actualidad la mayora de las personas que trabajan con grficos
computadoras de grandes capacidades: discos duros de terabytes,
utilizan
tarjetas grficas
aceleradoras de video con memoria en gigabytes, mouse ptico y memoria RAM en el orden
de los gigas. Tambin son muy utilizadas las computadoras Macintosh especialmente en lo
relacionado a efectos especiales y grficos de animacin.
Fig. 1.17.La computadora PowerMac es popular para las
aplicaciones de animacin
Los procesadores ahora tienen ncleo doble que dota a las aplicaciones de recursos
que permiten hacerlas ms sofisticadas.
Aunque las cmaras digitales aparecieron en los 1990s, es hasta ahora que comienzan
a popularizarse, existiendo una gran variedad en cuanto a marcas, precios y caractersticas.
Graficacin
15
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 Capitulo 1. Introduccin a la graficacin
Fig. 1.18.Cmara digital
Los PDAs son ahora un cliente importante en cuanto aplicaciones de
video, etc.
software. Es
ahora comn el uso de agendas electrnicas, juegos en los telfonos celulares, llamadas de
En general, el hardware y software utilizado en lo que va de esta dcada es
difundido, eran costosas o no estandarizadas.
la
popularizacin de tecnologas creadas anteriormente pero que en el pasado no se haban
1.2.Aplicaciones
Diseo Asistido por Computadora
En los procesos de diseo se hace un uso importante de las grficas por
computadora, en particular, para sistemas de ingeniera y arquitectura, sin embargo, en la
actualidad casi todos los productos se disean por computadora. Los mtodos CAD se
utilizan diariamente en el diseo de automviles, aeronaves, embarcaciones, naves
espaciales, computadoras, telas, construcciones, software y otros muchos productos.
El diseo asistido por computadora, abreviado DAO pero ms conocido por las siglas
inglesas CAD (Computer Aided Design), se trata bsicamente de una
una interfaz grfica. Permite disear en dos o tres
modelo numrico de un objeto o conjunto de ellos.
base de datos de
entidades geomtricas (puntos, lneas, arcos, etc) con la que se puede operar a travs de
dimensiones mediante geometra
almbrica, esto es, puntos, lneas, arcos, splines, superficies y slidos para obtener un
Graficacin
16
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 Capitulo 1. Introduccin a la graficacin
La base de datos asocia a cada entidad una serie de propiedades como color, capa,
estilo de lnea, nombre, definicin geomtrica, etc., que permiten manejar la informacin de
forma lgica. Adems pueden asociarse a las entidades o conjuntos de estas otro tipo de
propiedades como el costo, material, etc., que permiten enlazar el CAD a los sistemas de
gestin y produccin.
En el caso de algunas aplicaciones de diseo, los objetos se despliegan primero en
forma de armazn que muestra la forma general y sus caractersticas
despliegues del armazn permiten que los diseadores vean con
ajustes interactivos para disear formas. Las siguientes
figuras diseadas en un programa CAD.
internas. Los
rapidez los efectos de
figuras muestran armazones de
Fig. 1.19.Vista del programa Autocad
Con frecuencia, se usan las animaciones en las aplicaciones CAD. Las animaciones de
tiempo real que utilizan armazones son tiles para probar el comportamiento de un vehculo
o un sistema.
Graficacin
17
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 Capitulo 1. Introduccin a la graficacin
Fig. 1.20.Diseo frontal de un tren en Autocad
Existen paquetes para el diseo de circuitos electrnicos, los cuales permiten disear
un sistema colocando sucesivamente los componentes en el esquema y conectando estos
componentes. Esto permite que el diseador experimente con esquemas de circuitos
alternativos para reducir al mnimo el nmero de componentes o el espacio requerido para
el sistema.
Cuando los diseos de objetos estn completos, o casi completos, se aplican modelos
de iluminacin realista y presentaciones de superficie para mostrar la apariencia del
producto final. Tambin se crean vistas realistas para la publicidad de automviles y otros
vehculos mediante efectos especiales de iluminacin y escenas de fondo.
Fig. 1.21.Modelo de un tornillo
Graficacin
18
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 Capitulo 1. Introduccin a la graficacin
Fig. 1.22.Vista modelo de un edificio
Los arquitectos utilizan mtodos grficos interactivos para proyectar plantas
arquitectnicas como la de la figura anterior, que muestran la disposicin de habitaciones,
ventanas, escaleras, anaqueles, barras de cocina y otras caractersticas de la construccin.
Esto hace posible que los arquitectos y sus clientes estudien la apariencia de una
construccin. En algunas ocasiones es
diseo.
posible simular un recorrido virtual por las
habitaciones o alrededor de las construcciones para apreciar mejor el efecto general de un
Arte digital
Los mtodos de grficas por computadora se utilizan en forma forma
generalizada tanto en aplicaciones de bellas artes como en aplicaciones de arte comercial.
Los artistas o autores utilizan una variedad de mtodos computacionales, incluyendo
hardware de propsito especial como tabletas digitalizadoras, software desarrollado para
este propsito, tales como Adobe Photoshop o Macromedia FreeHand y paquetes CAD.
Graficacin
19
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 Capitulo 1. Introduccin a la graficacin
Fig. 1.23.Tableta Digitalizadora
El artista puede dibujar utilizando la tableta digitalizadora o inclusive el Mouse o ratn
para crear un dibujo simple o muy detallado. Herramientas como
brochas, incluidos en la mayora de los programas de dibujo,
pinten imgenes con distintas brochas, las cuales
textura, tamao y presin de trazo.
Con el propsito de crear pinturas tridimensionales, los artistas hacen uso
software CAD, algunas veces, un solo paquete contiene todas estas herramientas.
de
los paintbrush o
permiten que los artistas
tienen propiedades como color,
paquetes de modelado tridimensional, diagramacin de la textura, programas de dibujo y
Fig. 1.24.Pintura digital tridimensional
Existe tambin el arte digital matemtico en el que los artistas utilizan una
combinacin de funciones matemticas, procedimientos fractales con el fin de crear una
variedad de formas tridimensionales y bidimensionales , al igual que
estereoscpicas.
pares de imgenes
Graficacin
20
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 Capitulo 1. Introduccin a la graficacin
De igual manera, estas tcnicas y programas se utilizan para crear diseos con fines
comerciales o personales. Entre los usos comerciales se encuentra la creacin de
logotipos, pginas de revistas, anuncios publicitarios, peridicos, etc. En lo que respecta al
uso personal, los usuarios suelen modificar las propiedades de las imgenes (modificar su
brillo, contraste, saturacin), modificarlas (rotarlas,
fotomontajes.
Un mtodo comn que se utiliza en los comerciales es el morphing o transformacin,
donde un objeto se transforma en otro; podemos ver una lata de aceite convertirse en un
automvil o el rostro de una persona transformase a un rostro diferente.
escalarlas, recortarlas) y hacer
Fig. 1.25.Tcnica de morphing aplicada a la MonaLisa
Fig. 1.26.Montaje de un perro con la cabeza de ave
Una ventaja que ofrece el arte digital es que a diferencia del convencional, el primero
permite el uso de layers o capas, las cuales permiten aadir profundidad a las imgenes.
De igual manera, el arte digital no se desgasta con el tiempo ni las condiciones normales a
las que se somete el arte
Graficacin
21
grfico comn. Algunos artistas y sociedades puristas no
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 Capitulo 1. Introduccin a la graficacin
consideran al arte digital como un arte debido a la ausencia de contacto con las
herramientas tradicionales tales como brochas y lienzos.
Entretenimiento
En la actualidad, se utilizan comnmente mtodos de grficas por computadora para
producir pelculas, videos musicales y programas de televisin. En ocasiones se despliegan
solo imgenes grficas y otras veces se combinan objetos (creados en la computadora) con
actores u objetos reales.
Animacin por computadora
La animacin pertenece al mbito del cine y la televisin aunque est en relacin
directa con las artes visuales clsicas, dibujo, pintura y escultura, as como con la
fotografa. Para realizar animaciones existen numerosas tcnicas que van ms all de los
familiares dibujos animados. Una tcnica muy utilizada en la actualidad es la animacin por
computadora, esta permite reducir los costos de produccin y edicin.
La animacin por computadora es para la mayora de la gente un sinnimo de grandes
eventos de la pantalla grande tales como Star Wars, Toy Story y Titanic. Pero no todas las
animaciones, o al menos la mayora, son hechas en Hollywood. No es inusual que las
caricaturas sean hechas enteramente en computadora. Los juegos de computadora son un
adelanto al estado del arte de las tcnicas de grficas de computadora.
La animacin de escritorio es posible ahora a un precio razonable. La animacin en el
web, hoy, es cosa de rutina. Los simuladores digitales para entrenar pilotos, equipos SWAT
y operadores de reactores nucleares son cosa de todos los das.
Graficacin
22
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 Capitulo 1. Introduccin a la graficacin
Fig. 1.27.Escena de la pelcula Toy Story
La animacin de escritorio ha tenido auge en los ltimos cinco aos, an cuando el GIF
animado surgi hace mucho tiempo, no fue sino hasta la popularizacin de Internet, que fue
posible poner al alcance de todos la animacin.
Paquetes de software como Macromedia Flash, Moho y algunos otros, han permitido
que casi cualquier persona pueda hacer una animacin fcilmente.
como Maya,
calidad.
Otras aplicaciones
permiten hacer animaciones ms sofisticadas en 2D y 3D y con una gran
Fig. 1.28.Escena de la caricatura South Park generada en Flash
Graficacin
23
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 Capitulo 1. Introduccin a la graficacin
Fig. 1.29.Imagen de una animacin en Maya
Las secuencias de animacin son por lo general creadas en plataformas Macintosh.
Los estudios de animacin tales como Pixar, han creado enormes
computadoras Mac para crear sus pelculas. La inversin en los
alcanza las cifras de millones de dlares y va en crecimiento.
laboratorios de
proyectos de animacin
Videojuegos
Un videojuego (llamado tambin juego de vdeo) es un programa informtico, creado
expresamente para divertir, formando parte del sector audiovisual. Los videojuegos estn
basados en la interaccin entre una persona y
videojuegos recrean entornos virtuales en los
personaje o cualquier otro elemento de
objetivos por medio de unas reglas determinadas.
una computadora (ordenador). Los
cuales el jugador puede controlar a un
dicho entorno, y as conseguir uno o varios
Fig. 1.30.Lara Croft, herona de el video juego Tomb Raider
Graficacin
24
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 Capitulo 1. Introduccin a la graficacin
Los videojuegos son programados como un software, siendo grabados en algn medio
de almacenamiento (como un cartucho, una tarjeta, un disquette, un CD, etc.) El hardware
que ejecuta los videojuegos puede ser una computadora, o un artefacto especialmente
creado para ello, las videoconsolas, divididas a su vez en arcade (de uso pblico), caseras
(que se acoplan en un televisor), porttiles o de bolsillo (de pequeo tamao y que poseen
pantalla propia) y ms recientemente los telfonos mviles (celulares).
Fig. 1.31.Consola de video juegos Xbox
La programacin de videojuegos est involucrada con la animacin y se
complementan. La industria de los videojuegos ha crecido tanto, que algunas universidades
ofrecen programas acadmicos de programacin de videojuegos,
GameBoy, XBox, Nintendo, y PlayStation.
es decir, que existen
ingenieros especialistas en videojuegos. Entre las consolas mas populares se encuentran
Pelculas
Las grficas por computadora se utilizan en diversas etapas de la creacin
especiales lo que mas llama la atencin entre los consumidores.
Como se haba mencionado anteriormente, en las pelculas o series de televisin es
comn que se combinen objetos animados y objetos o actores reales, estas tcnicas son
incluso utilizadas en los noticieros cuando el anunciador del clima es filmado sobre una
pantalla azul y digitalmente se agregan los mapas e informacin del clima.
de
pelculas. Se puede utilizar la animacin, edicin y efectos especiales, siendo los efectos
Graficacin
25
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 Capitulo 1. Introduccin a la graficacin
Fig. 1.32.Escena de la pelcula creada por computadora Los
Increbles
Utilizando programas de edicin, un productor puede mezclar, dividir, cortar o
modificar escenas de una pelcula con relativa facilidad. Los efectos especiales, son por lo
general la ltima fase de edicin de una pelcula, estos pueden hacer volar a un actor, hacer
explotar un submarino o crear una tormenta de arena solo por mencionar algunos ejemplos.
Fig. 1.33.Escena de la pelcula Matrix, famosa por sus efectos
especiales
La digitalizacin ha logrado reducir el costo en la filmacin de pelculas;
el formato digital en lugar del convencional.
muchos
productores, por lo general independientes, pueden llevar a cabo sus proyectos utilizando
Graficacin
26
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 Capitulo 1. Introduccin a la graficacin
Educacin y capacitacin
A menudo, se utilizan como instrumentos de ayuda educativa modelos de sistemas
fsicos, financieros y econmicos, los cuales se generan por computadora. Modelos
de sistemas fsicos, fisiolgicos, tendencias de poblacin, pueden ayudar a los estudiantes
a comprender la operacin del sistema.
En el caso de algunas aplicaciones de capacitacin, se disean sistemas especiales.
Como ejemplos de tales sistemas especializados, podemos mencionar los simuladores para
sesiones de prctica o capacitacin de capitanes de barco, pilotos de avin, operadores de
quipo pesado y el personal de control de trfico areo.
Fig. 1.34.Simulador de vuelo para capacitacin de la NASA
Algunos simuladores no tienen pantallas de video, por ejemplo, un simulador de vuelo
solo tiene un panel de control como instrumento de vuelo. Sin embargo, la mayor parte de
los simuladores cuenta con pantallas grficas para la operacin
y proyectores a color despliegan la escena del vuelo en la pantalla.
visual. Otro tipo de
simulador es en el que se monta una pantalla con paneles mltiples en frente del simulador
Graficacin
27
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 Capitulo 1. Introduccin a la graficacin
Visualizacin
Cientficos, ingenieros, personal mdico, analistas comerciales y otros necesitan con
frecuencia analizar grandes cantidades de informacin o estudiar
ciertos procesos. Las simulaciones numricas que se
de datos.
De modo similar, cmaras va satlite y otas fuentes acumulan grandes archivos de
datos ms rpido de lo que se puede interpretar. El rastreo de estos grandes conjuntos de
nmero para determinar tendencias y relaciones es un proceso tedioso e ineficaz. Pero si se
convierten a una forma visual es frecuente que se perciban de inmediato las tendencias y
los patrones.
el comportamiento de
efectan en supercomputadoras a
menudo producen archivos de dartos que contienenen miles e incluso millones de valores
Fig. 1.35.Colonoscopa asistida por medios y grficas electrnica
Existen muchas y clases de conjuntos de datos y los esquemas de visualizacin
efectivos dependen de las caractersticas de los datos. Una compilacin de datos contiene
valores escalares, vectores, tensores de orden superior o cualquier combinacin de estos
tipos de datos. Y los conjuntos de datos pueden ser bidimensionales o tridimensionales.
Graficacin
28
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 Capitulo 1. Introduccin a la graficacin
La codificacin de colores es solo una manera de visualizar un conjunto de datos. Las
tcnicas adicionales incluyen trazos, grficas y diagramas de contorno, presentaciones de
superficie y visualizaciones de interiores de volumen.
Procesamiento de imgenes
A pesar de que los mtodos empleados en las grficas por computadora y
procesamiento de imgenes se traslapan, las dos reas realizan, en forma
operaciones distintas.
En las grficas por computadora, se utiliza una computadora para crear una imagen.
Por otro lado, en el procesamiento de imgenes se aplican tcnicas
interpretar imgenes existentes, como fotografas y rastreos de
aplicaciones principales del procesamiento de imgenes son:
Graficacin
estos
ltimos representan una imagen a travs del uso de objetos geomtricos como curvas y
ART
BMP, Windows Bitmap
CIN, Cineon
CPT, Corel Photo Paint
DPX, Digital Picture eXchange
DRW, Draw
35
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 Capitulo 1. Introduccin a la graficacin
Graficacin
37
AI, Adobe Illustrator Document
CDR, CorelDRAW
CGM, Computer Graphics Metafile
DXF, ASCII Drawing Interchange
DWG, AutoCAD Drawing Database
EMF, Enhanced MetaFileEPS, Encapsulated PostScript
FHX, Macromedia Freehand Document
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 Capitulo 1. Introduccin a la graficacin
Uso de color indexado, a travs de una paleta de colores que puede ser de
distintos tamaos, dependiendo del valor del Size of Local Color Table, que tiene
un tamao de 3 bits. El nmero de colores se puede calcular mediante la
frmula: 2(Size of Local Color Table+1) Esto permite a GIF usar una paleta de
2,4,8,16,32,64,128 256 colores.
Aunque con mediante el uso de varias capas transparentes (con un mximo de
256 colores en cada una) separadas por 0 milisegundos (simultneas)
ellas, si pueden mostrarse imgenes con ms de 24 colores
permitiendo mostrar un color real. Pese a esto, esta ltima
estas imgenes no aparcenen simultneamente sino
entre
diferentes,
tcnica es poco
eficiente, y rara vez se usa, sobretodo para demostrar esta posibilidad, a veces,
que va apareciendo cada
una de las capas sucesivamente. En este caso, cada capa sera un cuadrado de
16 por 16, en el que como mucho se podran mostrar 256 colores, la imgen se
divide en dichos recuadros, y se van superponiendo uno sobre otro.
Permite transparencia de 1 bit, de tal forma que cada pixel de la imagen puede
ser o no transparente. Esto lo diferencia de formatos como el PNG, que tambin
dispone transparencia variable.
Es uno de los dos formatos histricos de Internet, junto con el JPEG, por lo que
es compatible con la prctica totalidad de los navegadores.
Permite la creacin de animaciones, por lo que ha sido utilizado ampliamente en
banners publicitarios.
Graficacin
46
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 Capitulo 1. Introduccin a la graficacin
62
63
67
79
85
87
Graficacin
55 61
59 55
66
90
70
109
61
85
59 68 113 144 104
58 71 122 154 106
61 68 104 126 88
65 60
71 64
79 69
70
59
68
77
55
65
68
61
76
64 73
69 72
66 73
70 69
68 70
58 75
65 83
78 94
50
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 Capitulo 1. Introduccin a la graficacin
El siguiente proceso es restarles 128 para que queden nmeros entorno al 0, entre
-128 y 127.
Se procede a la transformacin por DCT de la matriz, y el redondeo de cada elemento
al nmero entero ms cercano.
76
65
66
65
61
49
43
41
73
69
69
70
67
63
57
49
67
73
60
57
60
68
64
59
62 58 67 64 55
38 19 43 59 56
15 16 24 63 55
6 26 22 58 59
24 2 40 60 58
58 51 60 70 53
69 73 67 63 45
60 63 52 50 34
La transformacin DCT utiliza las siguientes frmulas:
415 30
4 22
47 7
49 12
12 7
3
8
1 0
0 0
61
61
77
34
13
2
0
1
27
10
56
13
20 2
7 9
10
6
2
1
3
0
25 29
15 10
4 2
6
2
4
2
1
1
0
5
5 6
2 2
3 3
42
4 1
12
Graficacin
51
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 Capitulo 1. Introduccin a la graficacin
Cuantizacin
El ojo humano es muy bueno detectando pequeos cambios de brillo en reas
relativamente grandes, pero no cuando el brillo cambia rpidamente en pequeas reas
(variacin de alta frecuencia), esto permite eliminar las altas frecuencias, sin perder
excesiva calidad visual. Esto se realiza dividiendo cada componente en el dominio de la
frecuencia por una constante para ese componente, y redondendolo a su nmero entero
ms cercano. Este es el proceso en el que se pierde la mayor parte de la informacin (y
calidad) cuando una imagen es procesada por este algoritmo. El resultado de esto es que
los componentes de las altas frecuencias, tienden a igualarse a cero, mientras que muchos
de los dems, se convierten en nmeros positivos y negativos pequeos.
Una matriz de cuantizacin tpica es esta:
16
12
14
14
18
24
49
72
11
12
13
17
22
35
64
92
10
14
16
22
37
55
78
95
16
19
24
29
56
64
87
98
24
26
40
51
68
81
103
112
40
58
57
87
109
104
121
100
51
60
69
80
103
113
120
103
61
55
56
62
77
92
101
99
Dividiendo cada coecifiente de la matriz de la imagen transformada entre cada
coecifiente de la matriz de cuantizacin, se obtiene esta matriz, ya cuantizada:
Graficacin
52
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 Capitulo 1. Introduccin a la graficacin
2
0
4
1
0
0
3 6 2
3 4 1
1 5 1
1 2 1
111
000
000
000
2 1 0 0
1 0 0 0
1 0 0 0
0 0 0 0
00 0 0
0 0 0 0
0 0 0 0
0 0 0 0
Por ejemplo, cuantizando el primer elemento, el coecifiente DC, sera as:
Codificacin entrpica
La codificacin entrpica es una forma especial de la compresin sin prdida de datos.
Para ello se cogen los elementos de la matriz siguiendo una forma de zig-zag, poniendo
grupos con frecuencias similares juntos, e insertando ceros de codificacin, y usando la
Codificacin Huffman para lo que queda.
Tambin se puede usar la codificacin aritmtica, superior a la de Huffman, pero que
rara vez se usa, ya que est cubierta por patentes, esta compresin produce archivos un
5% menores, pero a costa de un mayor tiempo de codificacin y decodificacin, esta
pequea ganancia, puede emplearse tambin en aplicar un menor grado de compresin a la
imagen, y obtener ms calidad para un tamao parecido.
En la matriz anterior, la secuencia en zig-zag, es esta:
26, 3, 0, 3, 3, 6, 2, 4, 1 4, 1, 1, 5, 1, 2, 1, 1, 1, 2, 0, 0, 0, 0, 0, 1, 1,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0
Graficacin
53
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 Capitulo 1. Introduccin a la graficacin
JPEG tiene un cdigo Huffman para cortar la cadena anterior en el punto en el que el
resto de coecifientes sean ceros, y as, ahorrar espacio:
26, 3, 0, 3, 3, 6, 2, 4, 1 4, 1, 1, 5, 1, 2, 1, 1, 1, 2, 0, 0, 0, 0, 0, 1, 1,
EOB
Ruido producido por la compresin
El resultado tras la compresin, puede variar, en funcin de la agresividad de los
divisores de la matriz de cuantizacin, a mayor valor de esos divisores, ms coecifientes se
convierten en ceros, y ms se comprime la imagen. Pero mayores compresiones producen
mayor ruido en la imagen, empeorando su calidad. Una imagen con una fuerte compresin
(1%-15%) puede tener un tamao de archivo mucho menor, pero tendr tantas
imperfecciones que no ser interesante, una compresin muy baja (98%-100%) producir
una imagen de muy alta calidad, pero, tendr un tamao tan grande que quizs interese
ms un formato sin prdida como PNG.
La mayora de personas que naveguen por Internet estarn familiarizadas con estas
imperfecciones, son el resultado de lograr una buena compresin; para evitarlos, se tendr
que reducir el nivel de compresin o aplicar compresin sin prdida, produciendo mayores
ficheros despus.
Decodificacin
El proceso es similar al seguido hasta ahora, slo que de forma inversa. En este caso,
al haber perdido informacin, los valores no coincidirn.
Se toma la informacin de la matriz, se descodifica, y se pone cada valor en su casilla
correspondiente. Despus se multiplica cada uno de estos valores por el valor
correspondiente de la matriz de cuantizacin usada, como muchos valores son ceros, slo
se recuperan ( y de forma aproximada) los valores de la esquina superior izquierda.
Graficacin
54
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 Capitulo 1. Introduccin a la graficacin
Despus se deshace la transformacin DCT:
416 33 60 32
0 24 56 19
42 1380 24
44 29 56 17
18000
000 0
0000
000 0
65
72
76
72
66
60
46
32
73
72
66
60
63
67
61
51
70
45
15
6
28
60
74
72
48 40 0 0
260 0 0
40 0 0 0
00 0 0
000 0
000 0
000 0
000 0
67
40
12
12
42
68
64
45
70
65
58
59
69
75
63
45
48
57
61
56
52
50
45
39
Y finalmente se suma 128 a cada entrada:
68
70
68
62
59
60
54
45
58
20
22
28
8
50
65
58
60
58
60
66
69
68
74
83
63
56
52
56
62
68
82
96
55 58 70 61 58 80
56 83 108 88 63 71
62 113 150 116 70 67
68 122 156 116 69 72
65 100 120 86 59 76
61 68 78 80 53 78
67 54 63 64 65 83
77 56 70 83 83 89
Graficacin
55
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 Capitulo 1. Introduccin a la graficacin
Para comparar las diferencias entre el bloque original y el comprimido, se halla la
diferencia entre ambas matrices, la media de sus valores absolutos, da una ligera idea de la
calidad perdida:
8 8 5
53 1
276
23
3
2 1 3
11 3 1
11 11 3
4 17 8
7
7 1 3 61
0 6 12 4 6
0 2 10 1 3
4629 6
2 1 85 3
5 8 3 0 0
12 5 7 5 5
8 0 0 6
Se puede observar que las mayores diferencias estn cerca de la mancha, y por la
parte inferior, entre la esquina izquierda y el centro, notndose ms esta ltima, ya que
corre una mancha clara que antes estaba ms hacia la esquina. La media de los valores
absolutos de las restas es 4.8125, aunque en algunas zonas es mayor.
JP2, Joint Photographic Experts Group 2000
JPEG 2000 es una norma de compresin de imgenes basada en la transformada
discreta de wavelet. Fue creada por el comit Joint Photographic Experts Group que
anteriormente haba creado el algoritmo JPEG. Su objetivo fue el de mejorar el algoritmo
JPEG, basado en la transformacin discreta del coseno. Usualmente los archivos con este
formato utilizan la extensin .jp2.
JPEG 2000 puede trabajar con niveles de compresin mayores a los de JPEG sin
incurrir en los principales defectos del formato anterior con altas tasas de compresin:
Generacin de bloques uniformes y aspecto borroso. Tambin se adapta mejor a la carga
progresiva de las imgenes. Sus principales desventajas estn en que tiende ms a
emborronar ms la imagen que JPEG incluso para un mismo tamao de archivo (pero sin
Graficacin
56
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 Capitulo 1. Introduccin a la graficacin
formar bloques), y que elimina algunos detalles pequeos y texturas, que el formato JPEG
normal, si llega a representar.
Parte de JPEG 2000 ha sido publicada como una norma ISO, ISO/IEC 15444-1:2000.
Actualmente JPEG 2000 no est ampliamente admitido por los programas de visualizacin
de pginas web. En algunos navegadores, los diseadores no tienen intencin de incluirlo
debido a su escaso uso y gran nmero de patentes que tiene. De todas formas, existen
muchas extensiones que dan soporte, que opcionalmente pueden ser instaladas por el
usuario. Un navegador con soporte para este formato es Konqueror.
Comparacin con PNG
Si bien JPEG 2000 admite compresin sin prdida, no est diseado para reemplazar el
formato PNG, que es uno de los ms utilizados en la actualidad para este fin. PNG soporta
algunas caractersticas, como la transparencia, que no estn disponibles en JPEG 2000. Por
las cuestiones inherentes a la compresin sin prdida, de la cual PNG tiene mejor soporte y
funcionalidad, este resulta como una mejor opcin si lo deseado es almacenar fielmente y
sin prdidas, la imagen original.
Problemas legales por el uso de JPEG2000
JPEG 2000 no est mpliamente admitido por los navegadores actuales por el peligro
que desempean las Patentes de software en el mtodo de compresin matemtico, este
area de matemticas est empezando a ser muy patentado en general. JPEG 2000 no es
por s mismo una licencia libre, pero las compaas y organizaciones contribuyentes
acordaron que las licencias para la primera parte el corazn del sistema de codificacin
pueden ser obtenidas libres de cargo desde todos los contribuidores.
El comit JPEG ha establecido:
Es siempre una meta del comit JPEG que sus estndares puedan ser
implementados en su forma basica sin pagar regalas (royalties) y licencias... El
prximo estndar JPEG2000 ha sido preparado de acuerdo a estos lineamientos, y el
acuerdo con otras 20 grandes organizaciones que mantienen muchas patentes en
Graficacin
57
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 Capitulo 1. Introduccin a la graficacin
este rea para permitir el uso de su propiedad intelectual en conexin con el estndar
sin pagar licencias o regalas.
Aunque, el comit JPEG ha anotado adems ha declarado que las patentes obscuras y
no declaradas pueden ser un riesgo:
Es posible por supuesto que otras compaas o particulares puedan reclamar
derechos de propiedad intelectual que afecten la implementacin del estndar, y
muchos desarrolladores tienen que realizar sus propias bsquedas e investigaciones
en este rea.
MNG, Multiple-image Network Graphics
El MNG (pronunciado ming) es un formato de fichero, libre de derechos, para
imgenes animadas. Las iniciales significan Multiple-image Network Graphics. El formato MNG
est estrechamente vinculado al formato de imagen PNG.
Cuando comenz el desarrollo de PNG a principios del ao 1995, se decidi no
incorporar la gestin de la animacin, porque se empleaba poco esta capacidad del formato
GIF en ese tiempo. Sin embargo, se desarroll rpidamente un formato que soportaba la
animacin, el formato MNG, una extensin del formato PNG.
La versin 1.0 de las especificaciones de MNG sali el 31 de enero 2001. MNG es
pues muy reciente, y actualmente no se actualiza tanto como el PNG. Sin embargo varios
navegadores como Netscape Navigator y Konqueror ya soportan MNG; y los plugins de MNG
estn disponibles para Mozilla, Opera e Internet Explorer. Los desarrolladores de MNG
esperan que MNG comience a sustituir a largo plazo al GIF para imgenes animadas en la
Red, de la misma forma que el formato PNG ya comenz a hacerlo para imgenes fijas.
La estructura de los ficheros de formato MNG es bsicamente idntica a la de los
ficheros PNG, difiriendo solamente en la firma (8A 4D 4E 47 0D 1A 0A en hexadecimal) y
en la utilizacin de unidades de informacin discretas que proporcionan una gran variedad
de dispositivos de animacin. Las imgenes utilizadas en la animacin se almacenan en el
fichero MNG como una encapsulacin de imgenes con formato PNG o JNG.
Graficacin
58
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 Capitulo 1. Introduccin a la graficacin
Se crearon tambin dos versiones de MNG de complejidad reducida: MNG-LC (baja
complejidad) y MNG-VLC (complejidad muy baja). stas permiten a las aplicaciones incluir el
soporte de MNG en cierta medida, sin tener que poner todas las especificaciones de MNG.
MNG no dispone an de un tipo registrado de soporte de vdeo MIME, pero se puede
utilizar video/x-mng.
Son muy pocos los navegadores que soportan este formato. Safari no lo soporta.
Mozilla retir el soporte de MNG en la versin 1.5a y todas las futuras versiones,
plugin oficioso de Firefox puede utilizarse para integrar el
integrando MNG.
y no
parece solucionarse al reinstalarlo por ahora, a pesar de las objeciones de la comunidad . El
soporte en Mozilla. Hay que
indicar que los programadores intentan crear una alternativa a Mozilla, llamada MNGzilla,
PBM, Portable Bitmap Format
Formato simple para grficos en blanco y negro. Utiliza 1 bit por pixel. A diferencia del
resto de formatos grficos, un fichero PBM contiene texto plano y puede ser modificado
con un simple procesador de texto. Est relacionado con
grises) y PPM (color).
los formatos PGM (escala de
PCX, PiCture eXchange
PCX es un formato de imagen digital que usa la forma simple de la codificacin run-
length (un tipo de compresin sin perdidas).
PCX fue desarrollado por Zsoft Corporation de Marietta, Georgia (Estados Unidos). Fue
el formato nativo para el programa Paintbrush de PC, el cual fue
programas de grficos populares que funcionaban bajo DOS
junto con el ILBM.
La mayora de los archivos PCX usan una paleta de color indexada, pero el formato fue
ampliado para permitir imgenes de 24 bits. PCX fue bastante popular en sistemas bajo
Graficacin
59
uno de los primeros
en los primeros PCs. Su
popularidad tambin se debe a que era uno de los formatos utilizados por el Deluxe Paint,
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 Capitulo 1. Introduccin a la graficacin
DOS o Windows, pero actualmente es poco comn, siendo en buena parte reemplazado por
formatos con mejor compresin y prestaciones, tal como el PNG o el JPEG.
Debido a que los colores en el ndice 0x00..0xC0 se comprimen mejor que los colores
0xC1..0xFF, una buena ordenacin de la paleta es importante. Normalmente es suficiente
(aunque no siempre) con mover los colores ms comunes a las posiciones de la paleta
0x00..0xC0, y los menos usados a las ltimas posiciones de la paleta.
El algoritmo completo para ordenar la paleta es contar cuantas 63N+1 (N
valores de color sin prefijo para mejorar la compresin, y mover
resultados ptimos.
Este algoritmo de compresin es muy rpido y utiliza muy poca memoria, pero no es
muy eficiente especialmente en fotografas.
para
enteros no negativos) veces aparece un color en una fila, y slo entonces es posible utilizar
los colores con mayor
cmputo en los ndices 0x00..0xC0, y el resto a 0xC1..0xFF. Esto se justifica para producir
PDF, Portable Document Format
PDF es un formato de almacenamiento de documentos, desarrollado por la empresa
Adobe Systems.
En esencia no es un formato grfico propiamente dicho, sino un formato de
almacenamiento de documentos, que permite almacenar texto con formato, imgenes de
diferentes tipos, etc. Es una versin simplificada de PostScript; permite contener mltiples
pginas y enlaces.
Est especialmente ideado para documentos susceptibles de ser impresos, ya
especifica toda la informacin necesaria para la presentacin final del
determinando todos los detalles de cmo va a
ulteriores de ajuste o maquetacin.
Cada vez se
gran
utiliza tambin ms como especificacin de visualizacin, gracias a la
quedar, no
que
documento,
requirindose procesos
calidad de las fuentes utilizadas y a las facilidades que ofrece para el manejo del
documento, como bsquedas, hiperenlaces, etc.
Graficacin
60
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 Capitulo 1. Introduccin a la graficacin
Las caractersticas ms importantes del formato PDF son:
No est soportado por algunos navegadores muy viejos (sin embargo estos
navegadores son muy raros hoy en da)
No soporta animacin
La administracin de color fallaba en algunos navegadores (actualmente no es
muy importante y se puede evitar)
Falsas creencias:
Sin compresin
PackBitsHuffman modificado, el mismo que las imgenes de fax (UIT grupo III y
IV anteriormente CCITT).
LZW, el mismo que usa el formato GIF.
JPEG
Hay tambin etiquetas que especifican el formato interno de almacenamiento de la
imagen: completas, por bandas o por secciones rectangulares, lo cual permite a muchas
aplicaciones optimizar los tiempos de carga o leer nicamente la zona de inters de una
imagen grande.
Un aspecto muy prctico del formato TIFF es que permite almacenar ms de una
imagen en el mismo archivo.
Un mito que ha de desterrarse es la idea de que el formato TIFF no permite comprimir
las imgenes. No obstante, algunas cmaras fotogrficas digitales ofrecen la opcin de
grabar fotos en el formato TIFF, lo cual suele entenderse como sin compresin.
Creadores y Dueos
El formato TIFF fue desarrollado por Aldus y Microsoft, y es actualmente propiedad de
Adobe Systems. La ltima revisin del formato es la nmero 6, del ao 1992. Hay algunas
extensiones, como las anotaciones que utiliza el Imaging de Microsoft, pero ninguna puede
considerarse estndar.
Graficacin
73
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 Capitulo 1. Introduccin a la graficacin
WMF, Windows MetaFile Format
WFM es un metaformato de 16 bits de los sistemas operativos Windows, siendo un
estndar de intercambio de grficos
Excel, Access, etc.).
WMF es un formato vectorial (aunque no basado en curvas de Bzier) y escalable, que
funciona copiando en un archivo los comandos para realizar la
cualquier elemento grfico, ya sean imgenes
complejos.
imagen en cuestin,
ahorrando con ello una cantidad considerable de espacio. Tericamente puede almacenar
bitmap, textos o grficos vectoriales
entre las diferentes aplicaciones Microsoft (Word,
XBM, X BitMap
Formato nativo en blanco y negro del sistema X Window, compatible con la mayora
de navegadores web. Se trata de un formato ASCII sin compresin diseado de tal forma
que los ficheros tienen sintaxis de C/C++, pudiendo ser incluidos en el cdigo fuente.
XCF, eXperimental Computing Facility
Formato nativo para el programa The GIMP (OpenSource), con mltiples
GIMP, caractersticas extra, como la composicin por capas. Usado, sobre todo, en The
pero tambin leble por ImageMagick.
X-Pixmap (.xpm)
Inspirado en el formato XBM, es usado casi exclusivamente en plataformas UNIX, Linux,
BSD con el sistema X Windows.
1. formula
2. formula
Graficacin
74
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 Capitulo 1. Introduccin a la graficacin
Resumen
Los grficos por computadora son un herramienta verstil que representa una ventaja
que puede aplicarse a campos diversos. Los descubrimientos de autores como Euclides,
Descartes y Schoenberg representan la base de los grficos.
La historia de la graficacin por computadora comienza con el Proyecto Whirlwind y el
sistema computacional SAGE; el lpiz luminoso de la SAGE fue uno de los primeros
dispositivos de hardware utilizados para la graficacin.
El Sketchpad de Ivan Sutherland en 1963 permita el diseo interactivo con el uso de
lpiz luminoso, este hecho es considerado por muchos como el nacimiento de los grficos
por computadora. En 1966 se comenz el desarrollo del primer vdeo juego domstico
denominado Fox Hounds.
Otros descubrimientos e invenciones importantes en los 1960s fueron las curvas
paramtricas, la transformada de Furier, el mouse en los laboratorios Xerox PARC y
desarrollo de algoritmos como los de sombreado, iluminacin, z-buffer y mapeo de textura.
En los 1971 se comenz a comercializar el primer video juego como arcade: Computer
Space. Pong tambin marc un hito en la historia dando pie a la creacin de consolas. La
microcomputadora Altair de MITS condujo a la revolucin de el computador personal.
En 1976 la Apple I fue el primer xito de la computacin personal, en ese mismo ao la
pelcula Futureworld incluy la animacin de un rostro y mano humanos siendo la primera
en utilizar los grficos por computadora.
En 1981 la IBM PC comenz a venderse popularizando el trmino computadora
personal. En 1982 se lanz al mercado la primera tarjeta de vdeo denominada Hrcules la
cual solo serva para grficos de un solo color.
Apple Lisa la primera computadora comercial con interfaz grfica y ratn, se lanz en
1983. En 1987 se cre en IBM la primeta tarjeta grfica VGA. En 1989 Adobe Photoshop
comenz a comercializarse siendo hoy una aplicacin popular.
Graficacin
75
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 Capitulo 1. Introduccin a la graficacin
En 1992 OpenGL se convirti en un estndar de APIs grficas. El primer navegador
grfico de internet se cre en 1993 con el nombre de Moisaic. En esta poca comenzacn a
utilizarse los estndares de MPEG.
El Super Mario 64 sali a la venta y es considerado el mejor juego de plataformas; este
juego cre el primer sistema de control de cmaras en un juego en 3 dimensiones.
En 1995, se anunci el formato DVD utilizando la especificacin desarrollada por 10
compaas lderes. En 1996 el puerto AGP fue inventado por Intel solucionando los cuellos
de botella producidos en las tarjetas con bus PCI.
En la actualidad todas las computadoras utilizan tarjetas de vdeo con capacidad de
mostrar colores reales. Se hace uso de dispositivos como cmaras digitales, tabletas
digitalizadoras, mouse y monitores de alta resolucin.
En los procesos de diseo se hace un uso importante de las grficas por computadora,
en particular para sistemas de ingeniera y arquitectura a travs de los mtodos CAD. El
diseo asistido por computadora (CAD, Computer Aided Design) se trata bsicamente de
una base de datos de entidades geomtricas con la que se puede operar a travs de una
interfaz grfica.
El arte digital utiliza las grficas por computadora incluyendo hardware de propsito
especial, software y paquetes CAD. Un artista puede dibujar utilizando la tableta
digitalizadora para crear ilustraciones tan complejas como se desee. Las aplicaciones
contienen herramientas como paintbrush o brochas que tienen propiedades como color,
textura, tamao y presin de trazo.
Existe tambin el arte digital matemtico que hace uso de funciones matemticas y
procedimientos fractales. El ate digital a diferencia del convencional ofrece ventajas como el
uso de capas y no se desgasta con el tiempo.
La animacin por computadora permite reducir costos de produccin y edicin en el
mbito del cine y la televisin. El uso de internet ha permitio poner al alcance de todos la
animacin. Aplicaciones como Flash y Moho, permiten que casi cualquier persona pueda
hacer una animacin. Aplicaciones ms sofisticadas como Mzaya permiten hacer
animaciones en 2D y 3D.
Graficacin
76
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 Capitulo 1. Introduccin a la graficacin
La programacin de videojuegos est involucrada con la animacin y se
complementan. La industria de los juegos a crecido en tal medida que algunas universidades
ofrecen programas acadmicos de programacin en videojuegos.
Las grficas por computadora se utilizan en diversas etapas de la creacin
especiales lo que mas llama la atencin entre los consumidores.
Las grficas tambin se utilizan en aplicaciones de educacin y capacitacin. Los
simuladores para sesiones de prctica o capacitacin de capitanes de barco, pilotos de
avin, operadores de equipo pesado y personal de trfico areo permiten a los estudiantes
a comprender mejor la operacin del sistema y a practicar en un entorno virtual muy
apegado a la realidad.
El procesamiento de imgenes se utiliza en reas muy diversas. Las principales
aplicaciones del procesamiento de imgenes son: el mejoramiento de la calidad de la imagen
y la percepcin de la mquina de informacin visual.
Los formatos grficos de archivos son la forma en que la informacin de una imagen se
guarda en un archivo. Cada formato utiliza tcnicas de codificacin especial, mtodos de
compresin y otras tcnicas de para buscar el equilibro entre la calidad, el pes del fichero y
la compatibilidad entre plataformas.
En general, todos los ficheros grficos comienzan con una cabecera que indica las
caractersticas de la imagen, despus se encuentran los datos de la imagen los cuales
suelen estar comprimidos.
Existen dos tipos de formatos: los vectoriales y los de mapa de bits tambin conocidos
como rasterizados. Los rasterizados se distinguen de los vectoriales en que estos ltimos
representan una imagen a travs del uso de objetos geomtricos como curvas y polgonos
mientras que los mapas de bits se almacenan como un conjunto de pixeles.
de
pelculas. Se puede utilizar la animacin, edicin y efectos especiales, siendo los efectos
Graficacin
77
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 2. Transformaciones geomtricas
2. Transformaciones
geomtricas
Objetivo.
El estudiante conocer y aplicar las principales transformaciones geomtricas
sobre objetos en 2D y 3D.
Habitualmente, un paquete grfico permite al usuario especificar que parte de una
imagen definida se debe visualizar y dnde esta parte se debe colocar en el dispositivo de
visualizacin. Cualquier sistema de coordenadas que sea conveniente, referido al sistema de
referencia de coordenadas del mundo, se puede usar para definir la imagen.
En el caso de las imgenes bidimensionales, una vista se selecciona especificando una
regin del plano xy que contiene la imagen total o cualquier parte de ella. Un usuario puede
seleccionar una nica zona para visualizacin, o varias zonas para visualizacin simultnea o
para una secuencia animada panormica a travs de una escena.
Las partes dentro de las zonas seleccionadas se mapean entonces sobre zonas
especificadas de las coordenadas del dispositivo. Cuando se seleccionan mltiples zonas de
vista, estas zonas se pueden colocar en ubicaciones de visualizacin independientes, o
algunas zonas se podran insertar en zonas de visualizacin ms grandes. Las
transformaciones de visualizacin bidimensional desde las coordenadas universales a las
coordenadas del dispositivo implican operaciones de traslacin, rotacin y cambio de escala,
as como procedimientos de borrado de aquellas partes de la imagen que se encuentran
fuera de los lmites de una zona seleccionada de la escena.
Graficacin
78
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 2. Transformaciones geomtricas
2.1.Transformaciones bidimensionales
Traslacin
2.Correccin leyendas
Se aplica una traslacin en un objeto para cambiar su posicin a lo largo de la
trayectoria de una lnea recta de una direccin de coordenadas a otra. Convertimos un
punto bidimensional al agregar las distancias de traslacin, tx y ty a la posicin de
coordenadas original (x, y) para mover el punto a una nueva posicin (x, y).
2.1. x = x + tx y = y + ty
El par de distancia de traslacin (tx, ty) se llama vector de traslacin o vector de
cambio.
Se pueden expresar las ecuaciones anteriores en una sola ecuacin matricial al utilizar
vectores de columna para representar las posiciones de coordenadas y el vector de
traslacin:
2.2.
X1
P = ,
X2
X '1
P' =
X '2
Tx
T =
Ty
Esto nos permite expresar las dos ecuaciones de traslacin bidimensional en la forma
de matriz:
2.3.
P' = P + T
en ocasiones, las ecuaciones de transformacin matricial se expresan en trminos de
vectores de rengln de coordenadas en vez de vectores de columna. En este caso,
expresaramos las representaciones matriciales como P[x y] y T[tx ty].
La traslacin es una transformacin de cuerpo rgido que mueve objetos sin
deformarlos, es decir, se traslada cada punto del objeto la misma distancia. Se traslada un
segmento de lnea recta al aplicar la ecuacin de transformacin 2.3 en cada uno de los
Graficacin
79
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 2. Transformaciones geomtricas
extremos de la lnea y se vuelve a trazar la lnea entre las nuevas posiciones de los
extremos.
Los polgonos se trasladan al sumar el vector de traslacin a la posicin de
coordenadas de cada vrtice y se vuelve a generar el polgono utilizando un nuevo conjunto
de coordenadas y vrtices y las especificaciones actuales de los atributos.
y
10
5
0
5 10 15 20 x
y
10
5
0
5 10 15 20 x
Fig. 2.1.Movimiento de un polgono de la posicin a) a la posicin
b) con el vector de traslacin (-5.50, 3.75)
Rotacin
Se aplica una rotacin bidimensional en un objeto al cambiar su posicin a lo largo de la
trayectoria de una circunferencia en el plano de xy. para generar una rotacin,
especificamos un ngulo de rotacin y la posicin (xr, yr) del punto de rotacin (o punto
pivote) en torno al cual se gira el objeto.
Graficacin
80
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 2. Transformaciones geomtricas
P'
!
y
r
P
xr
Fig. 2.2.Rotacin de un objeto a travs del ngulo alrededor del
punto pivote
Los valores positivos para el ngulo de rotacin definen rotaciones en sentido opuesto
a las manecillas del reloj alrededor del punto pivote y los valores negativos giran los objetos
en la direccin del reloj . Tambin es posible describir esta transformacin como una
rotacin sobre el eje de rotacin que es perpendicular al plano de xy y pasa a travs del
punto pivote.
El primer paso es determinar las ecuaciones de transformacin para la rotacin de la
posicin de un punto P cuando el punto pivote est en el origen de las coordenadas.
Graficacin
81
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 2. Transformaciones geomtricas
(x' , y')
"
(x, y)
!
Fig. 2.3.Rotacin de un punto desde la posicin (x, y) a la
posicin (x, y) a travs de un ngulo con respecto del
origen de las coordenadas. El desplazamiento angular original
del punto desde el eje de las x es .
En la figura 2.3, r es la distancia entre constante del punto desde el origen, el ngulo
es la posicin angular original del punto desde el plano horizontal y es el ngulo de
rotacin. Utilizando identidades trigonomtricas podemos expresar las coordenadas
transformadas en trmino de los ngulos y como:
2.4.
x ' = r cos( + o u ) = r cos ocos r sin osin u
y' = r sin( + o u ) = r cos osin r sin ocosu
Las coordenadas originales del punto en las coordenadas polares son
2.5.
x = r cos o, y = r sin u
Al sustituir las expresiones 2.5 en 2.6, obtenemos las ecuaciones de transformacin
para girar un punto en la posicin (x, y) s travs de un ngulo al rededor de un origen:
2.6.
Graficacin
x ' = x cos ysin u
y = x sin + u y cosu
82
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 2. Transformaciones geomtricas
Con las representaciones del vector de columna 2.2 para las posiciones de
coordenadas podemos expresar las ecuaciones de rotacin en la forma de matriz:
2.7.
donde la matriz de rotacin es:
P ' = RP
2.8.
cosu
R=
sin u
sin
cos
Cuando las posiciones de coordenadas se representan como vectores de rengln en
vez de vectores de columna, el producto de la matriz en la ecuacin de rotacin 2.7 se
transpone, de modo que el vector de coordenadas de rengln transformado [x y] se
calcula como
P 'T = (RP)T = P T RT
donde PT = [x y] y se obtiene la transposicin RT de la matriz R con slo cambiar el
signo de los trminos del seno.
(x' , y')
r
r
"
(xr , yr ) !
(x, y)
Fig. 2.4.Rotacin de un punto desde la posicin (x,y) a la posicin
(x, y ) a travs de un ngulo con respecto del punto de
rotacin (xr, yr)
Graficacin
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 2. Transformaciones geomtricas
En la figura 2.4 se ilustra la rotacin de un punto alrededor de una posicin pivote
arbitraria. Al utilizar las relaciones trigonomtricas en esta figura, podemos generalizar las
ecuaciones 2.6 para obtener las ecuaciones de transformacin para la rotacin de un punto
con respecto de cualquier posicin de rotacin especfica (xr, yr):
2.9.
x ' = xr + (x + xr )cos (y yr )sin u
y' = yr + (x + xr )sin (y yr )cosu
Estas ecuaciones difieren de las ecuaciones de rotacin 2.6 por la inclusin de
trminos aditivos, as como los factores de multiplicacin en los valores de las coordenadas.
Sl igual que con las traslaciones, las rotaciones son transformaciones de cuerpos
rgidos que mueven los objetos sin deformarlos. Se giran a travs del mismo ngulo todos
los puntos del objeto.
Se gira un segmento de linea recta al aplicar las ecuaciones de rotacin en cada
extremo de la lnea y se vuelve a trazar la lnea entre las nuevas posiciones de los
extremos . Los polgonos se giran al desplegar cada vrtice a travs del ngulo de rotacin
especfico y se vuelve a generar el polgono utilizando los nuevos vrtices.
Las lneas curvas se giran al cambiar la posicin de los puntos de definicin y se
vuelven a trazar las curvas. Por ejemplo, se puede girar una circunferencia o una elipse
alrededor de un eje no central al mover la posicin del centro a travs del arco que
subtiende el ngulo de rotacin especfico. Es posible girar una elipse sobre sus
coordenadas de centro al girar los ejes mayor y menor.
Escalacin
Una transformacin de escalacin altera el tamao de un objeto. Se puede realizar esta
operacin para polgonos al multiplicar los valores de coordenadas (x, y) de cada vrtice por
los factores de escalacin sx y sy para producir las coordenadas transformadas (x, y):
2.10.
x ' = xsx , y' = ysy
Graficacin
84
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 2. Transformaciones geomtricas
El factor de escalacin sx escala objetos en la direccin de x mientras que el factor de
escalacin sy lo hace en direccin de y. Tambin se pueden expresar las ecuaciones de
transformacin 2.10 en forma matricial:
2.11.
o
2.12.
x ' s x
y' = 0
0 x
sy y
P ' = SP
donde S es la matriz de escalacin 2 por 2 en la ecuacin 2.11.
Se pueden asignar valores numricos positivos cualesquiera a los factores de
escalacin sx y sy.Los valores menos que 1 reducen el tamao de los objetos y los valores
mayores que 1 producen una ampliacin. Al especificar un valor de 1 tanto para sx como
para sy no se altera el tamao de los objetos. Cuando se asigna el mismo valor a sx y sy se
genera una escalacin uniforme que mantiene las proporciones relativas de los objetos.
Cuando sx y sy tienen valores distintos se obtiene una escalacin diferencia como la de la
figura siguiente.
(a)
(b)
Fig. 2.5.Conversin de un cuadrado (a) en un rectngulo (b) con
los factores de escalacin sx = 2 y sy = 1.
Graficacin
85
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 2. Transformaciones geomtricas
Los objetos que se transforman con las ecuaciones 2.11 se escalan y cambian de
posicin. Los factores de escalacin con valores menores que 1 acercan los objetos al
origen de las coordenadas en tanto que los valores mayores que 1 alejan las posiciones de
coordenadas del origen.
Podemos controlar la localizacin de un objetos escalado al seleccionar una posicin
llamada punto fijo, que debe permanecer sin cambios despus de la transformacin de
escalacin.
Se pueden seleccionar las coordenadas para el punto fijo (xf, yf) como uno de los
vrtices, el centroide del objeto o cualquier otra posicin.
P
1
(xf , yf )
P
2
P
3
Fig. 2.6.Escalacin con respecto de un punto fijo seleccionado
(xf, yf). Las distancias desde el polgono a el punto fijo se
escalan mediante las ecuaciones de transformacin.
As, se escala un polgono con respecto del punto fijo al escalar la distancia de cada
vrtice al punto fijo. Para un vrtice con coordenadas (x, y), se calculan las coordenadas
escaladas (x, y) como
2.13.
x ' = x f + (x x f )sx , y' = y f + (y y f )sy
Graficacin
86
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 2. Transformaciones geomtricas
Podemos volver a expresar estas transformaciones de escalacin para separar los
trminos de multiplicacin y de adicin donde los trminos aditivos xf(1 - sx) y yf(1 - sy) son
constantes para todos los puntos en el objeto
x ' = xsx + x f (1 sx )
2.14.
y' = ysy + y f (1 sy )
Incluir coordenadas para un punto fijo en las ecuaciones de escalacin es similar a
incluir coordenadas para un punto pivote en las ecuaciones de rotacin.
Se escalan polgonos al aplicar las transformaciones 2.14 en cada vrtice y luego
volver a generar el polgono utilizando los vrtices transformados . Se escalan otros objetos
al aplicar las ecuaciones de transformacin de escalacin a los parmetros que definen los
objetos.
2.2.Coordenadas homogneas y representacin
matricial
En las aplicaciones de diseo y de creacin de imgenes, realizamos traslaciones,
rotaciones y escalaciones para ajustar los componentes de la imagen en sus posiciones
apropiadas. En este tema consideramos cmo se pueden volver a formular las
representaciones de la matriz de modo que se pueden procesar de manera eficiente esas
secuencias de transformacin.
Es posible expresar cada una de las transformaciones bsicas en la forma de matriz
general con las posiciones de coordenadas P y P representadas como columnas de vector.
2.15.
P ' = M 1 P + M 2
La matriz M1 es una matriz de 2 por 2 que contiene factores de multiplicacin y M2 es
una matriz de columnas de dos elementos que contiene trminos de traslacin. Para la
traslacin, M1 es la matriz de identidad. Para la rotacin o la escalacin M2 contiene los
trminos de traslacin asociados con el punto pivote o el punto fijo de escalacin.
Graficacin
87
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 2. Transformaciones geomtricas
Con el fin de producir una secuencia de transformaciones con estas ecuaciones, como
escalacin seguida por rotacin y luego traslacin, debemos calcular las coordenadas
transformadas un paso a la vez. Primero, se escalan las posiciones de coordenadas, despus
se giran estas coordenadas escaladas y por ltimo se trasladan las coordenadas giradas.
Un planteamiento mas eficiente combinara las transformaciones de manera que se
obtengan las coordenadas finales directamente a partir de las coordenadas iniciales para
eliminar el clculo de coordenadas intermedias. De esta manera, se debe de formular
nuevamente la ecuacin 2.15 para eliminar la adicin de la matriz asociada con los trminos
de la traslacin M2.
Podemos combinar los trminos de multiplicacin y de adicin para transformaciones
geomtricas dibimensionales en una sola representacin de matriz al ampliar las
representaciones de matriz de 2 por 2 a matrices de 3 por 3.
Esto nos permite expresar todas las ecuaciones de matriz como multiplicaciones de
matriz , si tambin ampliamos las representaciones de matriz para las posiciones de
coordenadas. Para expresar cualquier transformacin bidimensional como una multiplicacin
de matriz, representamos cada posicin de coordenadas cartesianas (x, y) con las tres
coordenadas homogneas (xh, yh, h), donde
2.16.
x=
xh
,
h
y=
yh
h
Por tanto, una representacin general de coordenadas homogneas se puede expresar
tambin como (hx, hy, h). Para transformaciones geomtricas bidimensionales,
seleccionamos el parmetro
coordenadas (x, y).
Una opcin conveniente consiste en slo establecer h = 1. Entonces, se representa
cada posicin bidimensional con las coordenadas homogneas (x, y, 1). Se requieren otros
valores para el parmetro h, por ejemplo, en las formulaciones de matriz de
transformaciones de vista tridimensionales.
homogneo h como cualquier valor no cero. As, existe un
nmero finito de representaciones homogneas equivalentes para cada punto de
Graficacin
88
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 2. Transformaciones geomtricas
En matemticas se utiliza el trmino coordenadas homogneas para referirse al efecto
de esta representaciones de ecuaciones cartesianas. Cuando se convierte un punto
cartesiano (x, y) a una representacin homognea (xh, yh, h) las ecuaciones que contienen x
y y como f(x, y) = 0, se convierten en ecuaciones homogneas en los tres parmetros xh, yh,
h.
Esto slo significa que si se sustituye cada uno de los tres parmetros con cualquier
valor v veces ese parmetro, el valor v se puede factorizar fuera de las ecuaciones.
Expresar posiciones en coordenadas homogneas nos permite representar todas las
ecuaciones de transformacin geomtrica como multiplicaciones de matriz. Se representan
las coordenadas con vectores de columna de tres elementos y las operaciones de
transformacin se expresan como matrices de 3 por 3. Para la traslacin tenemos:
2.17.
x ' 1 0 t y x
y' = 0 1 t y
y
1 0 0 1 1
que podemos expresar en forma abreviada
2.18.
P ' = T (t x ,t y )P
con T(tx, ty) como la matriz de traslacin 3 por 3 en la ecuacion 2.17. Se obtiene el
inverso de la matriz de traslacin al reemplazar los parmetros de traslacin tx y ty con sus
valores negativos -tx y -ty.
De modo similar, ahora se expresan las ecuaciones de transformacin de rotacin
respecto al origen de las coordenadas como
2.19.
o como
x ' cosu
y' = sin u
1 0
sin u
cosu
0
0 x
0 y
1 1
Graficacin
89
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 2. Transformaciones geomtricas
2.20.
P ' = R( u)P
El operador de transformacin de rotacin R() es la matriz de 3 por 3 en la ecuacin
2.19 con el parmetro de rotacin . Obtenemos la matriz de rotacin inversa cuando se
sustituye con -.
Por ltimo, ahora se expresa una transformacin de escalacin con respecto del origen
de las coordenadas como la multiplicacin de matriz
2.21.
o
2.22.
x ' sx
y' = 0
1 0
0
sy
0
0 x
0 y
1 1
P ' = S(sx , sy )P
donde S(sx, sy) es la matriz de 3 por 3 en la ecuacin 2.21 con los parmetros sx y sy.
Al sustituir sus inversos multiplicativos (1/sx y 1/sy) se obtiene la matriz de escalacin
inversa.
Las representaciones de matriz o representaciones matriciales son mtodos estndar
para implementar transformaciones en sistemas de grficas. En muchos sistemas, las
funciones de rotacin y escalacin producen transformaciones con respecto del origen de
las coordenadas como en las ecuaciones 2.19 y 2.21.
2.3.Composicin de transformaciones
bidimensionales
Con las representaciones de matriz del tema anterior, podemos establecer una matriz
para cualquier secuencia de transformaciones como una matriz de transformacin
compuesta al calcular el producto de la matriz de las transformaciones individuales. La
creacin de productos de matrices de transformacin a menudo se conoce como
concatenacin o composicin de matrices.
Graficacin
90
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 2. Transformaciones geomtricas
Traslaciones, rotaciones y escalaciones
Traslaciones
Se se aplican dos vectores de traslacin sucesivos (tx1, ty1) y (tx2, ty2) en la posicin
de coordenadas P, la localizacin transformada final P, la localizacin transformada final P
se calcula como:
2.23.
P ' = T (t x 2 ,t y2 ) T (t x1 ,t y1 )P} = T (t x 2 ,t y2 )T (t x1 ,t y1 )
P
{ { }
donde se representan P y P como vectores de columna de coordenadas homogneas.
Podemos verificar este resultado al calcular el producto de la matriz para las dos
agrupaciones asociativas. Asimismo, la matriz de transformacin compuesta para esta
secuencia de transformaciones es
2.24.
2.25.
1 0 t x 2 1 0 t x1 1 0 t x1 + t x 2
0 1 t 0 1 t = 0 1 t + t
y2 y1
x1
y2
0 0 1 0 0 1 0 01
T (t x 2 ,t y2 )T (t x1 ,t y1 ) = T (t x1 + t x 2 ,t y1 + t
y2 )
que demuestra que dos transformaciones sucesivas son aditivas.
Rotaciones
Dos rotaciones sucesivas que se aplican en el punto P producen la posicin
transformada
2.26.
P ' = R( u2 ){ R(u1 )P} = { R( u2 )R(u1 )}P
Al multiplicar las dos matrices de rotacin, podemos verificar que dos rotaciones
sucesivas son aditivas:
Graficacin
91
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 2. Transformaciones geomtricas
2.27.
R( u2 )R(u1 ) = R(u1 + u2 )
de modo que es posible calcular las coordenadas giradas finales con la matriz de
rotacin compuesta como
2.28.
P ' = R(u1 + u2 )P
Escalaciones
Concatenar matrices de transformacin para dos operaciones de escalacin sucesivas
produce la siguiente matriz de escalacin compuesta:
2.29.
2.30.
sx 2
0
0
sy2
0
0 sx1
0 0
1 0
0
sy1
0
0 sx1 sx 2
0 = 0
1 0
0
sy1 sy2
0
0
0
1
S(sx 2 , sy2 )S(sx1 , sy1 ) = S(sx1 sx 2 , sy1 sy2 )
La matriz resultante en este caso indica que las operaciones de escalacin sucesivas
son multiplicativas. Es decir, si debiramos triplicar el tamao de un objeto dos veces en
una sucesin, el tamao final sera nueve veces el tamao original.
Rotacin del punto pivote general
Con un paquete grfico que slo ofrezca una funcin de rotacin para girar objetos
con respecto del origen de las coordenadas, podemos generar casi cualquier punto pivote
seleccionado (xr, yr) al realizar la siguiente secuencia de operaciones de traslacin-rotacin-
traslacin:
1.
2.
Graficacin
92
Traslade el objeto de modo que se mueva la posicin del punto pivote al origen
de las coordenadas.
Gire el objeto con respecto del origen de las coordenadas.
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 2. Transformaciones geomtricas
3. Traslade el objeto de manera que se regrese el punto pivote a su posicin
original.
(xr , yr )
Posicin original del !
objeto y punto jo
Traslacin del objeto !
de modo que el punto!
pivote(xr , yr ) est en !
el origen
(xr , yr )
Rotacin con respecto!
del origen
Traslacin del punto !
pivote de modo que !
se regrese el punto !
pivote a la posicin!
de (x r , yr )
Fig. 2.7.Secuencia de transformacin para girar un objeto con
respecto de un punto pivote especfico al utilizar la matriz R
() de la transformacin 2.19
En la figura anterior se ilustra esta secuencia de transformacin. La matriz de
transformacin compuesta para esta secuencia se obtiene de la concatenacin
2.31.
1 0
0 1
0 0
xr cosu
yr sin u
1 0
sin u
cosu
0
0 1 0 r cosu
0 0 1 r = sin u
1 0 0 1 0
sin u
cosu
0
xr (1 cos u) + yr sin
yr (1 cos u) xr sin
1
que se puede expresar en la siguiente forma
Graficacin
93
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 2. Transformaciones geomtricas
2.32.
T (xr , yr )R( u)T (xr , r ) = R(xr , yr , u)
donde T(-xr, -yr)= T-1(xr, yr). En general, es posible determinar una funcin de rotacin
para aceptar parmetros para las coordenadas del punto pivote, as como el ngulo de
rotacin y generar en forma automtica la matriz de rotacin de la ecuacin 2.31.
Escalacin del punto fijo general
La siguiente figura ilustra una secuencia de transformacin para producir escalacin
con respecto de una posicin fija seleccionada (xf, yf) al utilizar una funcin de escalacin
que slo puede escalar en relacin con el origen de las coordenadas.
(a) (b)
(xf , yf )
Posicin origial !
del objeto y !
punto jo
(c)
Traslacin del objeto!
de modo que el punto!
(xf , yf ) est en el origen
(d)
(xf , yf )
Escalacin con !
respecto del!
origen
Traslacin del objeto!
de modo que se!
regrese el punto jo!
a la posicin (xf , yf )
Fig. 2.8.Secuencia de transformacin para escalar un objeto con
respecto a la posicin fija especfica utilizando la matriz de
escalacin S(sx, sy) de la transformacin 2.21
Graficacin
94
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 2. Transformaciones geomtricas
1.
2.
3.
Traslade el objeto de modo que el punto fijo coincida con el origen de las
coordenadas.
2. Escale el objeto con respecto del origen de las coordenadas
Utilice la traslacin inversa del paso 1 para regresar el objeto a su posicin
original.
La concatenacin de las matrices para estas res operaciones produce la matriz de
escalacin requerida
2.33.
o
2.34.
1 0
0 1
0 0
x f sx
y f 0
1 0
0
sy
0
0 1 0 f sx
0 0 1 f = 0
1 0 0 1 0
0
sy
0
x f (1 sx )
y f (1 sy )
1
T (x f , y f )S(sx , sy )T (x f , f ) = S(x f , y f , sx ,
sy )
Esta transformacin se genera de manera automtica en sistemas que ofrecen una
funcin de escalacin que acepta las coordenadas para el punto fijo.
Propiedades de concatenacin
La multiplicacin de matrices es asociativa. Para tres matrices cualesquiera A, B y C, el
producto matricial ABC se puede lelvar a cabo al multiplicar primero a por B o multiplicar
primero B por C:
2.35.
ABC = (AB)C = A(BC)
Por tanto, podemos evaluar los productos matriciales al utilizar una agrupacin
asociativa ya sea de izquierda a derecha o de derecha a izquierda.
Por otro lado, los productos de la transformacin tal vez no sean conmutativos. en
general el producto matricial AB no es igual que BA. Esto significa queremos trasladar y
girar un objeto, debemos tener cuidado sobre el sentido en que se evala la matriz
compuesta
Graficacin
95
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 2. Transformaciones geomtricas
Posicin!
nal
Posicin!
nal
Fig 2.9.Invertir el orden en que se lleva a cabo una secuencia de
transformaciones puede afectar la posicin transformada de un
.
objeto. En la parte (a), primero se traslada un objeto y luego se
gira. En la parte (b), primero se gira el objeto y despus se
traslada.
Para algunos casos especiales, como una secuencia de transformaciones todas de la
misma clase, la multiplicacin de las matrices es conmutativa.
Como un ejemplo, se podran realizar dos rotaciones sucesivas en cualquier sentido y
la posicin final sera la misma. Esta propiedad conmutativa tambin se aplica para dos
traslaciones sucesivas o dos escalaciones sucesivas. Otro par conmutativo de operaciones
es la rotacin y la escalacin uniforme. (Sx = Sy)
2.4.Transformacin ventana-rea de vista
Algunos paquetes grficos permiten que el programador especifique coordenadas de
primitivas de salida en un sistema de coordenadas de mundo de punto flotante, usando las
Graficacin
96
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 2. Transformaciones geomtricas
unidades que sean relevantes para el programa de aplicacin: angstroms, micras, metros,
millas, aos luz, etctera. Se emplea el trmino de mundo porque el programa de aplicacin
representa un mundo que se crea o presenta interactivamente para el usuario:
Como las primitivas de salida se expresan en coordenadas de mundo, hay que indicar al
paquete de subrutinas grficas cmo establecer la correspondencia entre las coordenadas
de mundo y las coordenadas de pantalla (usaremos el trmino especfico coordenadas de
pantalla para relacionar este anlisis especficamente con SRGP, pero podran usarse
dispositivos de impresin, en cuyo caso sera ms apropiado el trmino coordenadas de
dispositivo).
Esta correspondencia se puede efectuar si el programador de la aplicacin proporciona
al paquete grfico una matriz de transformacin para la correspondencia. Otra forma es que
el programador de la aplicacin especifique una regin rectangular en coordenadas de
mundo, llamada ventana de coordenadas mundiales y una regin rectangular
correspondiente en coordenadas de pantalla, llamada rea de vista, con la cual se establece
la correspondencia de la ventana de coordenadas mundiales. La transformacin que
establece la correspondencia entre la-ventana y el rea de vista se aplica a todas las
primitivas de salida en coordenadas de mundo para que correspondan a coordenadas de
pantalla.
Intervalo mximo !
de las coordenadas !
de pantalla
Coordenadas de mundo
rea de vista
Coordenadas de pantalla
Fig. 2.10.La ventana en coordenadas de mundo y el rea de vista
en coordenadas de pantalla determinan la correspondencia
que se aplica a todas las primitivas de salida en coordenadas
de mundo.
Graficacin
97
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 2. Transformaciones geomtricas
Como se puede ver, si la ventana y el rea de vista no tienen la misma razn altura-
anchura, ocurre un escalamiento no uniforme. Si el programa de aplicacin cambia la
ventana o el rea de vista, las nuevas primitivas de salida que se dibujen en la pantalla se
vern afectadas por el cambio, no as las primitivas existentes.
El modificador coordenadas de mundo se emplea con ventana para subrayar que no se
trata de una ventana de administrador de ventanas, un concepto distinto y ms reciente
que por desgracia tiene el mismo nombre. Este modificador se omitir cuando no exista
ninguna ambigedad con respecto al tipo de ventana que se trate.
Si SRGP proporcionara primitivas de salida en coordenadas de mundo, el rea de vista
se hallara en el lienzo actual, que por omisin es el lienzo 0, la pantalla. El programa de
aplicacin podra cambiar en cualquier instante la ventana o el rea de vista, en cuyo caso
las primitivas de salida que se especificaran subsecuentemente estaran sujetas a una
nueva transformacin. Si el cambio incluyera un rea de vista distinta, las nuevas primitivas
de salida se colocaran en el lienzo en posiciones distintas a las anteriores.
Intervalo mximo!
de las coordenadas!
de pantalla
rea de!
vista 2
Ventana
Coordenadas mundiales
rea de vista 1
Coordenadas de pantalla
Fig. 2.11.Efecto de dibujar primitivas de salida con dos reas de vista. Las
primitivas de salida que especifican la casa se dibujaron primero con el
rea de vista 1, que luego se cambi al rea de vista 2., para lo cual el
programa de aplicacin invoc nuevamente al paquete grfico para
dibujar las primitivas de salida.
Un administrador de ventanas podra establecer la correspondencia entre el lienzo 0 de
SRGP y una ventana menor que la pantalla completa; en este caso no siempre estar visible
todo el lienzo ni toda el rea de vista.
Si tenemos una ventana y un rea de vista, cul es la matriz de transformacin que
establece la correspondencia entre las coordenadas mundiales de la ventana y las
Graficacin
98
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 2. Transformaciones geomtricas
coordenadas de pantalla del rea de vista? Esta matriz se puede desarrollar corno una
composicin de transformacin de tres pasos, como se sugiere en la figura 2.12
Intervalo !
mximo de las!
coordenadas!
de pantalla y
y v v
(xmx ,ymx)
(umx ,vmx)
(xmin ,ymin )
x
x u
(umin ,vmin )
u
Ventana en !
coordenadas de mundo
Ventana trasladada!
al origen
Ventana escalada al!
tamao del rea de !
vista
Traslacin de (umin ,vmin )!
hasta la posicin nal
Fig. 2.12.Pasos utilizados en la transformacin de una ventana de
coordenadas mundiales a un rea de vista.
La ventana, especificada por sus vrtices inferior izquierdo y superior derecho, se
traslada primero al origen de las coordenadas de mundo. Despus se escala el tamao de la
ventana para que sea igual al tamao del rea de vista. Por ltimo se usa una traslacin para
colocar un rea de vista. La matriz global Mwv, que se obtiene por medio de la composicin
de dos matrices de traslacin y la matriz de escalamiento, es
Graficacin
99
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 2. Transformaciones geomtricas
M wv
umx um n vmx vmn
= T (um n , vm n )iS
,
iT (xmn ymn )
xmx xmn ymx ymn
2.36.
umx um n
00x xmn
1 0 mn 1 0 umn mx
vmx vmn 0 1 v i
=
0
0 i 0 1 mn mn
ymx ymn
0 00 0 1 1
001
umx um n umx um n
0 +
x xxmx xmn mxmn
vmx vmnvmx vmn
=
0 +
ymx ymnymx ymn
001
T
Al multiplicar P = Mwv[x y 1] se obtiene el resultado esperado:
2.37.
u umn
P = (x xmn )i mx+ umn
xmx xmn
vmx vmn
(y ymn )i+ vmn 1
ymx ymn
Muchos paquetes grficos combinan la transformacin ventana-rea de vista con el
recorte de primitivas de salida con respecto a la ventana. La siguiente figura ilustra el
recorte en el contesto de ventanas y reas de vista.
Graficacin
100
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 2. Transformaciones geomtricas
y v
Intervalo mximo!
de las coordenadas!
de pantalla
Coordenadas de mundo
x
Coordenadas de pantalla
u
Fig. 2.13.Las primitivas de salida en coordenadas mundiales se
recortan con respecto a la ventana. Las que permanecen se
presentan en el rea de vista.
2.5.Transformaciones de composicin general y de
eficiencia computacional
Una transformacin bidimensional general, que representa una combinacin de
traslaciones, rotaciones y escalaciones se puede expresar como
2.38.
x ' rsxx
y' = rs
yx
1 0
rsxy
rsyy
0
trsx x
trsy y
1 1
Los cuatro elementos rsij son los trminos multiplicativos de rotacin -escalacin en la
transformacin que implican slo ngulos de rotacin y factores de escalacin. Los
elementos trsx y trsy son los trminos de traslacin que contienen combinaciones de
distancias de traslacin, coordenadas de punto pivote y de punto fijo, as como de ngulos
de rotacin y parmetros de escalacin.
Por ejemplo, si debe escalar, girar un objeto con respecto de las coordenadas de su
centroide (xc, yc) y despus trasladarlo, los valores para los elementos de la matriz de
transformacin compuesta son
Graficacin
101
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 2. Transformaciones geomtricas
sx cosu
T (t x ,t y )R(xc , yc , u)S(xc , yc , sx , sy ) = sx sin u
0
2.39.
x sin u
y cosu
0
xc (1 sx cos u) + yc sy sin u) + t x
yc (1 sy cos u) + xc sx sin u) + t y
1
Aunque la ecuacin de matriz 2.35 requiere nueve multiplicaciones y seis adiciones, los
clculos explcitos para las coordenadas transformadas son
x ' = xrsxx + yrsxy + trsx ,
2.40.
y' = xrsyx + yrsyy + trsy
As, en realidad solo necesitamos efectuar cuatro multiplicaciones y cuatro adiciones
para transformar las posiciones de las coordenadas. Este es el nmero mximo de clculos
que se requieren para cualquier secuencia de transformacin, una vez que se han
concatenado las matrices individuales y evaluado los elementos de la matriz compuesta.
Sin concatenacin, se aplicaran las transformaciones individuales una a la vez y se
podra reducir en forma considerable el nmero de clculos. De esta manera, una
implementacin eficiente de las operaciones de transformacin consiste en formular
matrices de transformacin, concatenar cualquier secuencia de transformacin y calcular las
coordenadas transformadas al utilizar la ecuacin 2.40.
En sistemas paralelos las multiplicaciones matriciales directas con la matriz de
transformacin compuesta de la ecuacin 2.38 pueden ser igual de eficientes.
Se puede expresar una matiz de transformacin de cuerpo rgido general que slo
implica traslaciones y rotaciones en la forma
2.41.
rxx
r
yx
0
rxy
ryy
0
trx
try
1
donde los cuatro elementos rij son los trminos de traslacin. En ocasiones. un cambio
de cuerpo rgido en la posicin de coordenadas se denomina transformacin de movimiento
rgido.
Graficacin
102
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 2. Transformaciones geomtricas
Todos los ngulos y distancias entre las posiciones de coordenadas permanecen sin
cambio al realizar la transformacin. Adems, la matriz 2.41 tiene la propiedad de que su
submatriz superior izquierda de 2 por 2 est en una matriz ortogonal. Esto significa que si
consideramos cada rengln de la submatriz como un vector, entonces los dos vectores (rxx,
rxy) y (ryx, ryy) forman un conjunto ortogonal de vectores unitarios: cada vector tiene
longitud unitaria.
2.42.
2222rxx + rxy = ryx + ryy = 1
y los vectores son perpendiculares (su producto de punto es 0):
2.43.
rxx ryx + rxy ryy = 0
Por tanto, si estos vectores unitarios se transforman por la submatriz de rotacin, (rxx,
rxy) se convierte en un vector unitario a lo largo del eje x, y (rxx, rxy) se transforma en un
vector unitario a lo largo del eje y del sistema de coordenadas:
2.44.
rxx
r
yx
0
rxx
r
yx
0
rxy
ryy
0
rxy
ryy
0
0 rxx 1
0 rxy = 0
1 1 1
0 ryx 0
0 ryy = 1
1 1 1
2.45.
Como un ejemplo, la siguiente transformacin de cuerpo rgido primero gira un objeto
a travs de un ngulo con respecto del punto pivote (xr, yr) y luego lo traslada:
2.46.
cosu
T (t x ,t y )R(xr , yr , u) = sin u
0
sin u
cosu
0
xr (1 cos u) + yr sin u) + t x
yr (1 cos u) xr sin u) + t y
1
Aqu, los vectores unitarios ortogonales en la submatriz superior izquierda de 2 por 2
son (cos , -sin ) y (sin , cos ), y
Graficacin
103
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 2. Transformaciones geomtricas
2.47.
cosu
sin u
sin u
cosu
0
0 cos 1
0 sin = 0
1 1 1
De modo similar, el vector unitario (sin , cos ) se convierte por la matriz de
transformacin de la ecuacin anterior en el vector unitario en la direccin de y.
La propiedad ortogonal de las matrices de rotacin es til para realizar una matriz de
rotacin cuando conocemos la orientacin final de un objeto en lugar de la cantidad de
rotacin angular necesaria para colocar el objeto en esa posicin. Las direcciones para la
orientacin deseada de un objeto se podran determinar mediante la alineacin de ciertos
objetos en escena o mediante posiciones seleccionadas en la escena.
La figura 2.14 ilustra un objeto que se debe alinear con los vectores de unidad u y v.
Al suponer que la orientacin original del objeto como se muestra en el inciso a) de la
misma figura, est alineada con los ejes de las coordenadas, realizamos la transformacin
deseada al asignar los elementos de u al primer rengln de la matriz de rotacin y los
elementos de v al segundo rengln.
y
v'
y
u'
x x
(a) (b)
Fig. 2.14.La matriz de rotacin para girar un objeto de la posicin
(a) a la posicin (b)se puede crear con los valores de los
vectores de orientacin unitaria u y v con respecto de la
orientacin original.
Este puede ser un mtodo conveniente para obtener la matriz de transformacin para
la rotacin en un sistema de coordenadas local (u objeto) cuando conocemos los vectores
de orientacin finales.
Graficacin
104
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 2. Transformaciones geomtricas
Dado que los clculos de la rotacin requieren evaluaciones trigonomtricas y varias
multiplicaciones para cada punto que se transforma, la eficiencia computacional puede
tornarse una consideracin importante en las transformaciones de rotacin.
En animaciones y otras aplicaciones que implican muchas transformaciones repetidas y
ngulos de rotacin pequeos, podemos utilizar aproximaciones y clculos repetitivos para
reducir los clculos en las ecuaciones de transformacin compuesta.
Cuando el ngulo de rotacin es pequeo, se pueden sustituir las funciones
trigonomtricas con valores de aproximacin con base en los primeros trminos de sus
expansiones de series de potencia. Para ngulos bastante pequeos (menores a 10) cos
es de alrededor de 1 sen tiene un valor muy cercano al valor de en radianes.
Por ejemplo, si giramos en pasos angulares pequeos alrededor del origen, podemos
establecer cos como 1 y reducir los clculos de la transformacin en cada paso a dos
multiplicaciones y dos adiciones para cada conjunto de coordenadas que se deben girar:
2.48.
x ' = x ysin u,
y' = x sin + u y
donde se evala sin una vez para todos los pasos, si se supone que el ngulo de
rotacin no cambia.
El error que implica esta aproximacin en cada paso disminuye conforme el ngulo de
rotacin es menor. Pero incluso con ngulos de rotacin pequeos, el error acumulado sobre
muchos pasos puede tornarse muy grande.
Podemos controlar el error acumulado al estimar el error en x y y en cada paso y
volver a especificar las posiciones del objeto cuando la acumulacin del error es muy
grande.
Las transformaciones compuestas a menudo implican clculos de la matriz inversa. Por
ejemplo, las secuencias de transformacin para las direcciones de escalacin general y para
reflexiones y recortes se pueden describir con componentes de rotacin inversa.
Se pueden generar con procedimientos simples las representaciones de matriz inversa
para las transformaciones geomtricas bsicas. Se obtiene una matriz de traslacin inversa
Graficacin
105
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 2. Transformaciones geomtricas
al realizar un transposicin de matriz (o cambiar el signo de los trminos del seno). Estas
operaciones son mucho ms sencillas que los clculos de la matriz inversa.
En el siguiente ejemplo, se escala y gira un polgono con respecto de un punto de
referencia determinado y luego se traslada el objeto. En la figura se ilustran las posiciones
original y final del polgono que se transforma mediante esta secuencia.
y
200
(a)
150
100
punto de !
referencia !
= (100, 100)
50
50 100 150 200
x
y
200
(b)
150
100
punto de !
referencia
50
50 100 150 200
x
Fig. 2.15.Se transform el polgono (a) en el (b) mediante
operaciones compuestas
Graficacin
106
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 2. Transformaciones geomtricas
2.6.Representacin matricial de transformaciones
tridimensionales
As como las transformaciones bidimensionales se pueden representar con matrices de
3 X 3 usando coordenadas homogneas, las transformaciones tridimensionales se pueden
representar con matrices de 4 X 4, siempre y cuando usemos representaciones de
coordenadas homogneas de los puntos en el espacio tridimensional. As, en lugar de
representar un punto como (x, y, z), lo hacemos como (x, y, z, W), donde dos de estos
cudruplos representan el mismo punto si uno es un multiplicador distinto de cero del otro:
no se permite el cudruplo (0, 0, 0, 0). Como sucede en el espacio bidimensional, la
representacin estndar de un punto (x, y, z, W) con W 0 se indica (x/W, y/W, z/W, 1).
La transformacin de un punto a esta forma se denomina homogeneizacin, igual que
antes. Adems los puntos cuya coordenada W es cero se llaman puntos en el infinito.
Tambin existe una interpretacin geomtrica. Cada punto en el espacio tridimensional se
representa con una lnea que pasa por el origen en el espacio de cuatro dimensiones, y las
representaciones homogeneizadas de estos puntos forman un subespacio tridimensional de
un espacio de cuatro dimensiones definido por la ecuacin W = 1.
El sistema de coordenadas tridimensionales que se usar en los siguientes ejemplos es
de mano derecha como se ilustra en la figura 2.16- Por convencin las rotaciones positivas
en el sistema de mano derecha son tales que, al ver hacia un eje positivo desde el origen,
una rotacin de 90 en sentido contrario al giro de las manecillas del reloj transformar un
eje positivo en otro. La tabla siguiente se desprende de esta convencin
EJE DE ROTACIN DIRECCIN DE LA
ROTACIN POSITIVA
x
y
z
yaz
zax
xay
Estas direcciones positivas se ilustran en la figura 2.16.
Graficacin
107
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 2. Transformaciones geomtricas
y
x
z
Fig. 2.16.Sistema de coordenadas de mano derecha
Se usa el sistema de mano derecha porque se trata de una convencin matemtica
estndar, aunque en la graficacin tridimensional es conveniente pensar en un sistema de
mano izquierda sobrepuesto en la pantalla (fig. 2.17), ya que un sistema de mano izquierda
da la interpretacin natural de que los valores mayores de z se encuentran ms lejos del
observador. Observe que en un sistema de mano izquierda, las rotaciones positivas son en
el sentido del giro de las manecillas del reloj cuando se observa desde un eje positivo hacia
el origen.
y
z
x
Fig. 2.17.Sistema de coordenadas de mano izquierda, con una
pantalla superpuesta
La traslacin en el espacio tridimensional es una simple extensin de la que se lleva a
cabo en el espacio bidimensional:
2.49.
T
1
0
T (dz , d y , dz ) =
0
0
0
1
0
0
0 dz
0 dy
1 dz
0 1
T
Es decir T(dx, dy, dz)[x y z 1] = [x+ dxy + dyz + d 1]
Graficacin
108
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 2. Transformaciones geomtricas
El escalamiento se extiende en forma similar:
2.50.
sz
0
S(sx , sy , dz ) =
0
0
T
0
sy
0
0
0
0
sz
0
0
0
0
1
T
Al revisar se observa que S(sx, sy, sz)[x y z 1] = [sxxsyyszz 1] .
La rotacin bidimensional de la ecuacin 2.8 es simplemente una rotacin
tridimensional con respecto al eje z, que es
2.51.
cosu
sin u
Rz ( u) =
0
0
sin u
cosu
0
0
0 0
0 0
1 0
0 1
Es fcil verificar esta observacin: una rotacin de 90 de [1 0 0 1] que es el vector
unidad sobre el eje x, debe producir el vector unidad [0 1 0 1] sobre el eje y. Al evaluar el
producto
2.52.
0 1 0 0 1
1 0 0 0 0
0 0 1 0 0
0 0 0 1 1
T
se obtiene el resultado previsto de [0 1 0 1] .
La matriz de rotacin del eje x es
2.53.
01
0 cosu
Rx ( u) =
0 sin u
00
0
sin u
cosu
0
0
0
0
1
La matriz de rotacin del eje y es
Graficacin
109
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 2. Transformaciones geomtricas
2.54.
cosu
0
Ry ( u) =
sin u
0
0 sin u
10
0 cosu
00
0
0
0
1
Las columnas (y las filas) de la submatriz superior izquierda de 3 X 3 de Rz(), Rx() y
Ry() son vectores unidad mutuamente perpendiculares y el determinante de la submatriz
es 1, lo que quiere decir que las matrices son ortogonales especiales. Adems, la submatriz
superior izquierda de 3 X 3 formada por una secuencia arbitraria de rotacin es ortogonal
especial. Recuerde que las transformaciones ortogonales conservan las distancias y los
ngulos.
Todas estas matrices de transformacin tienen inversas. La inversa de T se obtiene
cambiando de signo dc dx, dy y dz; la de S reemplazando sx, sy y sz por sus recprocos; y la
inversa de cada una de las tres matrices de rotacin, negando el ngulo de rotacin.
La inversa de una matriz ortogonal B es la transpuesta de B: B
-1
= B . De hecho, para
T
tomar la transpuesta no es necesario intercambiar los elementos del arreglo que contiene la
matriz: basta intercambiar los ndices de las filas y las columnas al acceder a la matriz.
Observe que este mtodo para hallar la inversa es consistente con el resultado del cambio
de signo de para hallar la inversa de Rx, Ry y Rz.
Es posible multiplicar juntas cualquier cantidad de matrices de rotacin, escalacin y
traslacin. El resultado siempre tiene la forma
2.55.
r11
r21
M =
r31
0
r12
r22
r32
0
r13 t x
r23 t y
r33 t z
0 1
Como en el caso bidimensional, la submatriz superior izquierda de 3 X 3R nos da la
rotacin y el escalamiento combinados, mientras que T nos da la traslacin subsecuente.
Podemos obtener mayor eficiencia computacional si efectuamos la transformacin explcita,
como
Graficacin
110
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 2. Transformaciones geomtricas
2.56.
x 'x
y' = Ri y + T ,
z'z
donde R y T son submatrices de la ecuacin 2.55
Existen submatrices de sesgo tridimensional correspondientes a las matrices de sesgo
bidimensional. El sesgo (x, y) es
2.57.
1
0
SH xy (shx , shy ) =
0
0
T
0 shz
1 shy
0
0
1
0
0
0
0
1
T
Al aplicar SHxy al punto [x y z 1] se obtiene [x + shxz y + shyz 1] . Los sesgos
sobre los ejes x y y tienen forma similar.
Hasta ahora se centr la atencin en la transformacin de puntos individuales. La
transformacin de lneas, definidas stas por puntos, se obtiene transformando los puntos
extremos. Los planos si estn definidos por tres puntos se pueden manejar de la misma
forma, pero por lo general se definen con una ecuacin de plano y los coeficientes de esta
ecuacin deben transformarse de forma distinta. Tambin puede ser necesario transformar
la normal al plano.
Representemos un plano como el vector columna de los coeficientes de la ecuacin del
plano N = [A B C D]T. Entonces, un plano est definido por los puntos P tales que NP = 0,
donde el smbolo es el producto punto vectorial y P = [x y z 1] . Este producto punto da
lugar a la conocida ecuacin del plano Ax + By + Cy + D = 0, que tambin se puede expresar
como el producto del vector fila de los coeficientes de la ecuacin del plano multiplicado por
la columna P: N P = 0. Suponga ahora que transformamos todos los puntos P en el plano
con una matriz M. Para mantener
T
T
T
N P = 0 para todos los puntos transformados,
T T T T
T
quisiramos transformar N por una matriz Q (por determinarse) que d lugar a la ecuacin
(QN) MP = 0 usando la identidad (QN) =N Q . La ecuacin ser verdadera si Q M es
mltiplo de la matriz identidad. Si el multiplicador es 1, esta situacin nos lleva a Q = M
Graficacin
111
T -1
o
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 2. Transformaciones geomtricas
Q=(M ) . Por lo tanto el vector columna N de coeficientes de un plano transformado por M
se expresa como
2.58.
-1 T
N ' = (M 1 )T iN
-1 T
Por lo general no es necesario que exista la matriz (M ) , ya que el determinante M
puede ser cero. Esta situacin ocurrira si M incluye una proyeccin (quiz querramos
investigar el efecto de una proyeccin de perspectiva sobre el plano).
Si slo se transformar la normal al plano (por ejemplo, para efectuar algunos clculos
de sombreado) y si M slo consiste en una composicin de matrices de traslacin, rotacin
y escalamiento uniforme, entonces se simplificarn las matemticas. La N de la ecuacin
anterior se puede simplificar a [A B C 0] . (Con un componente W igual a cero, un punto
homogneo representa un punto en el infinito, lo cual se puede considerar como una
direccin).
T
2.7.Composicin de transformaciones
tridimensionales
En este apartado se analizar la forma de componer matrices de transformacin
tridimensionales usando un ejemplo. El objetivo es transformar los segmentos de lnea
dirigida P1P2 y P1P3 en la figura 2.18 de su posicin inicial en la parte (a) a su posicin final
en la parte (b). De esta manera, el punto P1 se trasladar al origen P1P2 quedar en el eje
positivo y P1P3 quedar en la mitad del eje positivo del plano (x, y). Las longitudes de las
lneas no se vern afectadas por la transformacin.
Se presentan dos formas de lograr la transformacin deseada. El primer mtodo es
componer las transformaciones primitivas T, Rx, Ry y Rz. Este mtodo, aunque es algo
tedioso, es fcil de ilustrar y su comprensin nos ayudar en nuestro conocimiento de las
transformaciones. El segundo mtodo, que utiliza las propiedades de las matrices
ortogonales especiales que se analiza en la seccin anterior, se explica de manera mas
breve pero es ms abstracto.
Graficacin
112
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 2. Transformaciones geomtricas
y
y
p
p
1
3
p
p
3
2
p
p
1
x
z
x
z
2
(a) Posicin inicial
su posicin final (b)
(b) Posicin nal
Fig. 2.18.Transformacin de P1, P2 y P3 de su posicin inicial (a) a
Para trabajar con las transformaciones primitivas, de nuevo dividimos un problema
difcil en varios ms sencillos. En este caso, la transformacin deseada se puede llevar a
cabo en cuatro pasos:
1.
2.
3.
4.
Traslacin de P1 al origen.
Rotacin sobre el eje y para que P1P2 est en el plano (y, z).
Rotacin sobre el eje x para que P1P2 est en el eje z.
Rotacin sobre el eje z para que P1P3 est en el plano (y, z).
Paso 1: Traslacin P1 al origen. La traslacin es
2.59.
1
0
T (x1 , 1 , 1 ) =
0
0
0
1
0
0
0 1
0 1
1 1
0 1
Al aplicar T a P1, P2 y P3 se obtiene
2.60.
0
0
P '1 = T (x1 , 1 , 1 )iP1 =
0
1
Graficacin
113
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 2. Transformaciones geomtricas
2.61.
x2 x1
y y 2
1P '2 = T (x1 , 1 , 1 )
iP2 =
z2 z1
1
x3 x1
y y 3
1P '3 = T (x1 , 1 , 1 )
iP3 =
z3 z1
1
2.62.
Paso 2: Rotacin sobre el eje y. En la figura 2.19 se muestra P1P2 despus del paso 1,
as como la proyeccin de P1P2 sobre el plano (x, z). El ngulo de rotacin es (90 - ) =
-90.
y
P' 3
P' 1
!
z
P' 2(x' 2 , y'2 , z' )2
D1
x
(x'2 , 0, z' )2
Fig. 2.19.Rotacin sobre el eje y. La proyeccin P1P2, cuya
longitud es D1, se hace rotar al eje z. El ngulo muestra la
direccin positiva de la rotacin sobre el eje y. El ngulo que
se usa en realidad es -(-90 - ).
Entonces,
2.63.
Donde
Graficacin
z '2 z2 z1
=,
D1D1
x'x x1
sin( u 90) = cos = u 2 = 2
D1D1
cos( u 90) = sin = u
114
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 2. Transformaciones geomtricas
2.64.
D1 = (z '2 )2 + (x '2 )2 = (z2 z1 )2 + (x2 x1 )2
Al sustituir estos valores en la ecuacin 2.63 se obtiene
2.65.
P2 '' = Ry ( u 90)iP2 ' = [ 0y2 y1 D11]
T
Como era de esperar, el componente x de P2 es cero y el componente z es la longitud
D1.
y
y''2
P''2
!
z''2
D2
P''1
x
z
Fig. 2.20.Rotacin sobre el eje x: P1P2 rota en el eje z con el
ngulo positivo . D2 es la longitud del segmento de lnea.
No se presenta el segmento de la lnea P1P2, ya que no se
usa para determinar los ngulos de rotacin. Las dos lneas
se hacen rotar con Rx()
Paso 3: Rotacin sobre el eje x. En la figura 2.20 se muestra P1P2 despus del paso 2.
El ngulo de rotacin es , para el cual
cos = o
2.66.
z ''2y''
,sin = o 2
D '2D '2
Donde D2 = |P1P2|, la longitud de la lnea P1P2. Sin embargo, la longitud de la lnea
P1P2 es igual a la longitud de la lnea P1P2, ya que las transformaciones de rotacin y
traslacin conservan la longitud; por lo tanto,
2.67.
Graficacin
D2 = P1 '' P2 '' = P1P2 = (x2 x1 )2 + (y2 y1 )2 + (z2 z1 )2
115
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 2. Transformaciones geomtricas
El resultado de la rotacin en el paso 3 es
P2 ''' = Rx ( o)iP2 '' = Rx ( o)iRy ( u 90)iP2 '
2.68.
= Rx ( o)iRy ( u 90)iT iP2 = 0 0
P1P2
1
T
Es decir, P1P2 coincide ahora con el eje z positivo.
y
y'''
3
!
P'''
3 D3
P''' x'''1
3
x
z
P'''
2
Fig. 2.21.Rotacin sobre el eje z. El ngulo positivo hace rotar la
proyeccin de P1P3, cuya longitud es D3, en el eje y, con lo
cual la lnea llega al plano (y, z). D3 es la longitud de la
proyeccin.
Paso 4. Rotacin sobre el eje z. En la figura 2.21 se muestran P1P2 y P1P3 despus del
paso 3, con P2 en el eje z y P3 en la posicin
2.69.
P3 ''' = [ x3 ''' y3 ''' z3 '''1] = Rx ( o)iRy ( u 90)iT (x1 , 1 , 1 )iP3
T
La rotacin a travs del ngulo positivo , con
cos = o y3 ''' D3 ,
sin = o x3 ''' D3 ,
2.70.
D3 = x3 '''2 , +3 '''2
Con el paso 4 se obtiene el resultado que se presenta en la figura 2.18(b).
La matriz compuesta
Graficacin
116
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 2. Transformaciones geomtricas
2.71.
Rz ( o)iRx ( o)iRy ( u 90)iT (x1 , 1 , 1 ) = RiT
es la transformacin requerida, con R = Rz()Rx()Ry( -90). Dejaremos que usted
aplique esta transformacin a P1, P2 y P3 para verificar que P1 se transforme al origen, P2 se
transforme al eje z positivo y que P3 se transforma a la mitad y positiva del plano (y, z).
La segunda manera de obtener la matriz R es usar las propiedades de las matrices
ortogonales. Recuerde que los vectores fila unidad de R rotan hacia los ejes principales. Al
reemplazar los segundos subndices de la ecuacin 2.55 con x, y y z para que la rotacin
sea ms conveniente,
2.72.
r
1x
R = r1y
r1z
r2 x
r2 y
r2 z
r3x
r3y
r3z
Como Rz es el vector unidad sobre P1P3 que rotar hacia el eje positivo,
2.73.
Rz = r1x
r2 x
r3x =
T
P1P2
P1P2
Adems, el vector unidad R, es perpendicular al plano de P1, P2 y P3 y rotar hacia el
eje x positivo, de manera que R, debe ser el producto cruz normalizado de dos vectores en
el plano:
2.74.
Finalmente,
Rx = r1x
r2 x
r3x =
T P1P3 P1P2
P1P3 P1P2
2.75.
Ry = r1x
r2 x
r3x = Rz Rx
T
rotar hacia ele eje y positivo. La matriz compuesta se expresa como
Graficacin
117
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 2. Transformaciones geomtricas
2.76.
r1x
r
1y
r1
z
0
r2 x
r2 y
r2 z
0
r3x
r3y
r3z
0
0
0
iT (x , , ) = RiT111
0
1
Donde R y T son como en la ecuacin 2.71. En la figura siguiente se muestran los
vectores individuales Rx, Ry y Rz.
y
P3
Ry
Rx
P1 Rz
x
z
P2
Fig. 2.22.Los vectores unidad Rx, Ry y Rz que se transforman
hacia los ejes principales.
Considere otro ejemplo. En la figura 2.23 se muestra un aeroplano definido en el
sistema de coordenadas xp, yp, zp y centrado en el origen. Queremos transformar el
aeroplano para que apunte en la direccin indicada por el vector DDV (direccin de vuelo),
est centrado en p y no inclinado, como se muestra en la figura 2.24
yp
xp
zp
Fig. 2.23.Un aeroplano en el sistema de coordenadas xp, yp, zp.
La transformacin necesaria para llevar a cabo esta reorientacin consiste en una
rotacin para apuntar el aeroplano en la direccin correcta, seguida por una traslacin del
Graficacin
118
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 2. Transformaciones geomtricas
origen a P. Para hallar la matriz de rotacin solo hay que determinar en qu direccin
apuntan los ejes xp, yp y zp en la figura 2.24, asegurarse de que las direcciones estn
normalizadas y luego usar estas direcciones como vectores columna en una matriz de
rotacin.
y
yp
xp
zp
DDV
P
x
z
Fig. 2.24.El aeroplano de la figura anterior, ubicado en el punto P
y apuntando en la direccin DDV.
El eje z, debe transformarse a la direccin DDV, mientras que el eje x, debe
transformarse a un vector horizontal perpendicular a DDV, o sea, en la direccin y DDV, el
producto cruz entre de y y DDV. La direccin yp esta indicada por zp xp = DDV (y DDV),
el producto cruz de zp y xp; por lo tanto las tres columnas de matriz de rotacin son los
vectores normalizados |y DDV|, |DDV (y DDV)| y |DDV|:
2.77.
y DOF
R=
0
DOF (y DOF)
0
DOF
0
0
0
0
1
3. truco
Graficacin
119
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 2. Transformaciones geomtricas
Resumen
Las transformaciones geomtricas bsicas son la traslacin, la rotacin y la escalacin.
La traslacin mueve un objeto con una trayectoria en lnea recta de una posicin a otra. La
rotacin mueve un objeto de una posicin a otra a lo largo de una trayectoria circular sobre
un eje de rotacin especfico.
Para aplicaciones bidimensionales, la trayectoria de rotacin se encuentra en el plano
xy sobre un eje que es paralelo al eje z. Las transformaciones de cambio de escala cambian
las dimensiones de un objeto con respecto a una posicin fija.
Podemos expresar las transformaciones bidimensionales como operadores de matrices
de 3 por 3 y las transformaciones tridimensionales como operadores de matrices de 4 por
4, de tal forma que esas secuencias de transformaciones pueden concatenarse dentro de
una matriz compuesta.
En general, podemos representar tanto transformaciones bidimensionales como
tridimensionales con matrices de 4 por 4. Representar operaciones de transformaciones
geomtricas con matrices de formulacin eficiente, en tanto en cuanto nos permite reducir
los clculos aplicando una matriz compuesta a una descripcin de un objeto para obtener su
posicin transformada.
Para encontrar la matriz de la posicin transformada expresamos posiciones de
coordenadas como matrices de columna. Elegimos la representacin de matriz columna para
puntos de coordenadas porque ese es el convenio matemtico estndar y, muchos
paquetes grficos siguen dicha convencin.
Nos referimos a una matriz de tres o cuatro elementos (vector) como una
representacin de coordenadas homogneas. Para transformaciones geomtricas, al
coeficiente homogneo se le asigna el valor 1.
Las transformaciones compuestas se forman como multiplicacin de matrices de
traslacin, rotacin, cambio de escala y otras transformaciones. Podemos usar
combinaciones de traslacin y rotacin para aplicaciones de animacin y podemos usar
combinaciones de rotacin y escalacin para cambiar el tamao de los objetos en cualquier
direccin especificada.
Graficacin
120
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 2. Transformaciones geomtricas
En general, la multiplicacin de matrices no es conmutativa. Obtenemos diferentes
resultados, por ejemplo, si cambiamos el orden de la secuenca traslacin-rotacin.
Las transformaciones entre sistemas de coordenadas cartesianos se lleva a cabo con
una secuencia de transformaciones traslacin.rotacin que hacen que los dos sistemas
coincidan. Especificamos el origen de coordenadas y vectores de eje para un marco de
referencia respecto al marco de referencia original.
En un sistema bidimensional, un vector define completamente las direcciones del eje
de coordenadas; pero en un sistema tridimensional, hay que especificar dos de las tres
direcciones de los ejes.
Las transformaciones geomtricas son transformaciones afines. Esto es, pueden
expresarse como una funcin lineal de posiciones de coordenadas. Traslacin, rotacin y
escalacin son transformaciones afines. Transforman lneas paralelas en lneas paralelas y
posiciones de coordenadas finitas en posiciones finitas.
Graficacin
121
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.
3.Correccin leyendas
Modelado Geomtrico
El estudiante conocer y aplicar las diferentes tcnicas de modelado
Objetivo.
geomtrico y su proyeccin en el rea de vista.
La cantidad total de datos que se deben almacenar en un modelo informtico,
depende del mbito de las preguntas que algortmicamente queramos responder a partir del
modelo.
Muchos de los problemas a resolver mediante modelos tienen naturaleza geomtrica.
Por ejemplo, el problema de hallar la imagen coloreada de un objeto incluye cuestiones
geomtricas tales como:
1) Qu partes del objeto son visibles para el observador?
2) Qu color ha de ser asignado a cada punto de la imagen?
Si podemos representar en el ordenador la forma geomtrica de un objeto, podremos
responder a estas preguntas y a muchas otras. De hecho, la informacin geomtrica sobre
un objeto es la parte ms til del total de informacin sobre el objeto. Adems, las tcnicas
para almacenar y procesar la informacin geomtrica son relativamente independientes de
un modelo particular. As, procesos esencialmente iguales de modelado se utilizan en la
construccin de modelos de barcos, casas, o zapatos.
Acorde con lo dicho anteriormente, en un modelo tiene sentido separar la informacin
geomtrica de los objetos, de la no geomtrica. Bajo este planteamiento, al total de
informacin del modelo informtico se conoce como modelo del objeto, mientras que la
informacin exclusivamente geomtrica constituye el modelo geomtrico .
Graficacin
122
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
Por lo tanto, el concepto de Modelado Geomtrico se refiere al conjunto de mtodos
utilizados para definir la forma y otras caractersticas de los objetos. La construccin de los
objetos es normalmente, en si misma, una operacin asistida por ordenador. stos juegan
un papel primordial, ya que sin su potencia de clculo los procedimientos del Modelado
Geomtrico solamente podran aplicarse en modelos de escasa importancia prctica.
Los mtodos del Modelado Geomtrico vienen a ser un compendio de las tcnicas
utilizadas en varias disciplinas, como la Geometra Analtica y Descriptiva, la Topologa, la
Teora de Conjuntos, el Anlisis Numrico, las Estructuras de Datos, el Clculo Vectorial y
los Mtodos Matriciales.
Se pueden enumerar tres aplicaciones bsicas del Modelado Geomtrico:
Cuando tan slo nos interesa visualizar su aspecto visual externo, sin detalles
sobre su estructura interna, aunque el objeto ocupe un cierto volumen.
para querer representar un objeto mediante un modelo de
Graficacin
123
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 deseamos realizar una visualizacin en tiempo real, y para ello utilizamos
hardware o software grfico que est slo preparado para visualizar polgonos.
En cualquiera de estos casos es conveniente utilizar una representacin de la
superficie del objeto.
En principio la informacin sobre una superficie debe dar cuenta de su geometra, de
sus propiedades visuales (cmo se comporta frente a la luz) y quizs tambin de alguna
propiedad fsica (como la elasticidad) si se va a efectuar una simulacin fsica sobre el
objeto.
Si la totalidad del objeto consta de diferentes partes (por ejemplo, varios polgonos o
varios trozos definidos por diferentes ecuaciones), entonces podemos aadir tambin
informacin topolgica, es decir, sobre cmo estas diferentes partes se conectan entre s
para formar la superficie.
Con esta informacin adicional el modelo se conoce como una representacin de
frontera del objeto (b-rep: boundary representation). Esta representacin de frontera se
utiliza frecuentemente en combinacin con un modelo slido, ya que una de ellas se puede
reconstruir a partir de la otra.
En general, las diferentes representaciones no se excluyen entre s, y muchos
programas suelen combinarlas, pasando de una a otra segn convenga.
Una caracterstica que suele exigirse a las superficies representadas es que sean
variedades bidimensionales (en ingls: superficies 2-manifold), es decir, que no existan
puntos singulares donde la superficie se intersecte consigo misma o se abra en varias hojas.
Adems de la informacin geomtrica y topolgica, es frecuente aadir a la
representacin de los objetos datos adicionales requeridos para su visualizacin (como el
color, las propiedades visuales del material, textura, etc.) o para efectuar procesos de
simulacin fsica (distribucin de densidad, temperatura, composicin).
Existen dos tipos de modelado de superficie: modelado plano y modelado curvo. En
esta seccin se hablar nicamente del modelado curvo. El modelado plano consiste en el
uso de polgonos para crear superficies. Puede consultar la seccin 3.3.1 para observar este
tema.
Graficacin
124
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
Superficies de Bezier
Las superficies spline son simplemente una extensin bidimensional de las curvas
spline. Las superficies spline, se pueden entender como una curva spline en la que el lugar
de cada punto de control es sustituido por una curva spline del mismo tipo de la curva
inicial. Es esta restriccin la que hace que existan exactamente los mismos tipos de curvas
que de superficies spline. Esto es, superficies de Bzier, superficies spline, y en ambos casos
estas pueden ser racionales o no.
Forma de Bernstein de las superficies de Bezier
La frmula de una curva de Bzier expresada en la forma de Bernstein, para una curva
de grado n es (vase seccin 3.3):
3.1.
Cn (u) = _pi Bin (u)
i=0
n
Haciendo que los pi no sean unos valores constantes sino que sean a su vez el
resultado de una funcin paramtrica de parmetro v, resulta que para cada valor concreto
del parmetro v, la funcin C(u) describe una curva diferente. Haciendo adems que las
ecuaciones paramtricas que rigen las curvas que siguen los puntos pi de control sean todas
curvas de Bzier y lo sean del mismo orden m, cada punto pi de control puede ser
expresado como:
3.2.
pi = pi (v) = _pi, j B jm (v)
j=0
m
Combinando las dos ecuaciones anteriores, se obtiene la ecuacin paramtrica de una
superficie.
3.3.
Graficacin
Sn, m (u, v) = __pi, j B jm (v)Bin (u)
i=0 j=0
n m
125
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
Esta ecuacin representa una superficie generada en la forma indicada en la figura
siguiente.
P1 (v)
P03
P0 (v)
P02
P2 (v)
P01
Pi (v)
C(u)
P00
Pi (v) Puntos de control generados por una curva !
Bzier de orden 4
Curva de Bzier de orden 3 con puntos de !
control pi
C(u)
Fig. 3.1.Superficie generada desplazando los puntos de control de
una curva de Bzier sobre otra curva de Bzier
Para llegar a la expresin paramtrica 3.3 de las superficies de Bzier, ha sido
necesario hacer varias suposiciones; a saber
2
3.37.
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
y
rr
sos
22
y = ry (r + cos o)sin u, rsusr
x = rx (r + cos o)cos u,
z = rz sin o
3.38.
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)
"
0
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
p
2
p
0
p
3
(a)
p
1
p
2
p
0
p
3
(b)
p
1
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
2
p
0 p
3
(a)
p
1
p
2
p
p
0
3
(b)
p
1
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
x = x(u),
y = y(u),
z = z(u)
3.39.
u1 su su2
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.
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
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
similar. En la figura 3.59 se presentan ejemplos de la continuidad C , C y C .
0 1 2
2
1
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.
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
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
curvas sucesivas en su punto de unin de acuerdo con la continuidad G . La continuidad
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
frontera. De acuerdo con la continuidad G , las curvaturas de la segunda curva se ajustarn
en la posicin de unin.
2
2
1
1
0
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
P1
C2
P2
(a)
P0
(b)
C1
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 Captulo 3: Modelado Geomtrico
3.40.
x(u) = ax u 3 + bx u 2 + cx u + d x ,
0 su s1
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
x(u) = u 3u 2u = UC
c x
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.44.
x(u) = _gk iBFk (u)
k=0
3
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.
P(u) = _pk BEZ k,n (u)
k=0
n
3.45.
(0 su s1)
Las funciones de combinacin de Bzier BEZk,n (u) son los polinomios de Bernstein:
3.46.
BEZ k,n (u) = C(n, k)u k (1 u)n k
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
3.48.
k
n >k >1
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
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
p
1
p
1
p
2
p
0
p0
(a)
p
p
1
2
(b)
p
3
p
2
p
3
p0
p0
p
1
p
3
(c)
p
p
2
(d)
p
1
3
p0
p
4
p
2
(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.
paran nk.
C(n, k) =
n k +1
C(n, k 1)
k
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
3.51.
P(1) = pn
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) = 0 + np1
3.52.
P '(1) = n 1 + npn
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
3.54.
P(1) = pn
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
3
p
2
p
1
p=p
0 3
p
4
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 2
p
3
p
0
p
4
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
1
p0
p'
0
p
2
p'
3
p'
1
p'
2
Fig. 3.64.Curva con continuidad de primer orden
Cuando las dos secciones curvas tienen el mismo nmero de puntos de control,
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
1
pn + ( pn pn 1 )
As los tres puntos de control son colineales y tienen el mismo espaciado.
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
2
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)
1
BEZ1,3(u)
1
0.8
0.6
0.4
0.2
0.8
0.6
0.4
0.2
0 0.2 0.4
(a)
0.6 0.8 1
u
0 0.2 0.4
(b)
0.6 0.8 1
u
BEZ2,3(u)
1
BEZ3,3(u)
1
0.8
0.6
0.4
0.2
0.8
0.6
0.4
0.2
0 0.2 0.4
(c)
0.6 0.8 1
u
0 0.2 0.4
(d)
0.6 0.8 1
u
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 13 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 :
P(u, v) = __p j, k BEZ j, m (v)BEZ k,n (u)
j=0 k=0
m n
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
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
objetos como conjuntos de
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 y 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
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.
y, a
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
operaciones
de
de
objetos complejos
de
mediante lneas
y
y aproximaciones
tareas
poligonales,
Toda
visualizacin de cudricas y splines B empleando aproximaciones lineales, procesamiento de
representacin superficies otras complejas.
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)
gg
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){
vvvv
}
void lineSegment(void){
vvvvv
glClear(GL_COLOR_BUFFER_BIT); //Borra la ventana de visualizacin
glColor3f(1.0, 0.0, 0.0); //Establece el color del segmento de lnea
ggggg
//en rojo
glBegin(GL_LINES)
g
glVertex2i(180, 15); //Especifica la geometra del segmento
231
glClearColor(1.0, 1.0, 1.0, 0.0); //Establece el color de la ventana
gggggggg
// de visualizacin en blanco
glMatrixMode(GL_PROJECTION);//Establece los parmetros de proyeccin
gluOrtho2D(0.0, 200.0, 0.0, 15.0);
Graficacin
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
AAAAA
}
}}}}}}}
// de lnea
glVertex2i(10, 145);
//Procesa todas subrutinas de OpenGL tan rpidamente como
//sea posible
glEnd();
glFlush();
gggg
void main(int argc, char ** argv){
glitInit(&argc, argv); //Inicializa GLUT
ggggggggggg
}
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.
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
gggggggggggggggggggg
//Establece el modo de
// visualizacin
glutInitWindowPosition(50,100); // Establece la posicin de la esquina
//superior izquierda de la ventana de visualizacin
///
//ventana de visualizacin
glutInitWindowSize(400,300);
//Establece el ancho y la altura de la
glutCreateWindow(Ejemplo de programa en OpenGL) //Crea la ventana
init();
//Ejecuta el procedimiento de inicializacin
glutDisplayFunc(lineSegment);
//Enva los grficos a la ventana de
//////
//visualizacin
glutMainLoop();
//Muestra todo y espera
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
\PlatformSDK\Lib
glut.h C:\Program Files\Microsoft Visual Studio NET 2003\Vc7
\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.
5.
Crea un proyecto nuevo (Archivo -> Nuevo -> Proyecto). Aparecer un cuadro
de dilogo.
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
Debian
Fedora, Mandriva, RedHat
$sudo apt-get install libglut3 libglut3-dev
#apt-get install libglut3 libglut3-dev
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
y
max
yinvert
y
max
(a)
x
(b)
y
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:
B.1 y = ymax yinvert
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.
r
!
Fig. B.2. Sistema de referencia en coordenadas polares, formado
mediante crculos concentricos y lneas radiales.
eje y
y
r
!
x eje x
P
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
B.2. x = r cos u, y = r sin u
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
= u (radianes)
r
r
!
P
y
x
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
y
P
z
eje z
eje y
x
eje x
eje z
eje x
(a) (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
z
x x
(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 + y2
. En el sistema B, el mismo punto tiene coordenadas (0, 0) y la distancia
hasta el origen de coordenadas del sistema es 0.
y
P
0B
x
Sistema B
Sistema A 0A
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
B.5.
V = P2 P1
= (x2 x1 , y2 y1 )
= (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.
y2
V
y1
P2
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
= o tan
V
1
x
z
"
#
V
y
!
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 = o
Vx
,
V
cos = |
Vy
V
,
cos = y
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 + o cos 2 + | cos 2 = y 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.
v
Tierra
F 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:
B.11. V1 + V2 = (V1x + V2 x ,V1y + V2 y ,V1z ,V2 z )
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
V2
y
V1 + V2
V2
V1
(a)
x
(b)
V1
x
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
B.12. sV = (sVx , sVy , sVz )
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 u, 0 susr
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
!
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:
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
B.15.
porque esta operacin produce un valor escalar. Asimismo, el producto escalar es
distributivo con respecto a la suma de vectores.
B.16.
Graficacin
251
{
s!
|V2|co
V1 iV2 = V1xV2 x + V1yV2 y + V1zV2 z
V1 iV2 = V2 iV1
V1 i(V2 + V3 ) = V1 iV2 + V1 iV3
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 u, 0 susr
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.
V1 V2
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:
B.19.
u x u y uz
V1 V2 = V1x V1y V1z
V2 x V2 y V2 z
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 u, 0 susr
Tambin se verifica que el producto vectorial no es asociativo, es decir,
B.21.
V1 (V2 V3 ) (V1 V2 ) V3
Sin embargo, el producto vectorial es distributivo con respecto a ala suma y resta de
vectores:
B.22. V1 (V2 + V3 ) = (V1 V2 ) + (V1 V3 )
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:
B.23.
3.60 0.01 2.00
5.46 0.00 1.63 ,
e2 x
x
x
,
x2
[a
1
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:
B.24.
m11
m21
M =
mr1
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:
B.25.
Vx
V = Vy
Vz
Aunque utilicemos esta representacin matricial estndar tanto para los puntos como
los vectores, existe una distincin importante entre ambos conceptos. La para
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:
B.26. C = AB
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
B.27.
Cij = _aik bkj
k =1
n
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
1 2 5 7 5 2 + 7 4 = 26 38
3 4 = 5 1 + 7 3
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
B.28. AB BA
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
La transpuesta M de una matriz se obtiene intercambiando las filas y columnas de la
matriz. Por ejemplo,
T
B.30.
1 4 a T 1 2 3T
4 5 6 = 2 5 ,[ a b c ] = b
3 6c
Para un producto de matrices la transpuesta es:
B.31.
T(M 1 M 2 )T = M 2 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
B.32.
a11
det A =
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:
B.33.
det A = _(1) j + k a jk det A jk
j =1
n
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
B.34.
det A = _(1) j + k a jk det A jk
k =1
n
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:
B.35. det(AB) = (det A)(det B)
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.
La inversa de una matriz (cuadrada) n por n M se designa M , cumplindose que:
B.36.
-1
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.
m =
1
jk
(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 Apndice B
Donde m
M
-1
-1
jk
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:
B.38. f1 (x, y, z) = 0, 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:
B.39. y = f (x)
y
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
B.40. P(u) = (x(u), y(u), z(u))
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
B.41. x(u) = r cos(2 ru), y(u) = r sin(2 ru), z(u) = 0, 0 su s1
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:
B.42. P(u, v) = (x(u, v), y(u, v), z(u, v))
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:
B.43.
x(u, v) = r cos(2 ru)sin( rv)
y(u, v) = r sin(2 ru)sin( rv)
z(u, v) = r cos( rv)
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
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 C
Apndice C
Manual de Prcticas
Prctica 1 Algoritmos aplicados a grficos
Material
Acceso a internet
Objetivo
El alumno aprender a instalar las libreras de OpenGL
Desarrollo
El profesor explicar la forma de instalar OpenGL en distintas plataformas,
posteriormente el alumno instalar de forma personal el software indicado.
Reporte
1.
2.
3.
4.
Portada
Pasos de instalacin para OpenGL
Problemas en la instalacin
Conclusiones
Recursos
Http://www.opengl.org
http://www.opengl.org/resources/libraries/glut/glut_downloads.php
http://www.xmission.com/~nate/glut.html
Anexo 1 de este texto
Wirght, Richard. Programacin en OpenGL. Anaya Multimedia
Graficacin
266
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 C
Prctica 6 Traslacin Bidimensional
Material
Tener instalado OpenGL
Objetivo
Desarrollar un programa en OpenGL que realice una traslacin bidimensional
Desarrollo
El profesor explicar en qu consiste la traslacin bidimensional. El alumno crear un
programa que realice la operacin mencionada.
Reporte
1.
2.
3.
4.
Portada
Descripcin del programa creado
Cdigo fuente del mtodo o funcin de traslacin
Conclusiones
Recursos:
http://itmgraficacion.googlepages.com/
http://www.ieev.uma.es/tdi/www_netscape/TEMAS/Tdi_22/index4.php
Demel, John T. y Michael J. Miller. Grficas por computadora. Ed. Mc. Graw Hill.
Govil-Pai, S., Pai, R.Learning Computer Graphics, Springer Verlag.
Wright, Richard. Programacin en OpenGL. Anaya Multimedia
Prctica 7 Rotacin Bidimensional
Material
Tener instalado OpenGL
Graficacin
267
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 C
Objetivo
Desarrollar un programa en OpenGL que realice una rotacin bidimensional
Desarrollo
El profesor explicar el procedimiento para realizar una rotacin bidimensional. El
alumno programar una rutina en OpenGL que rote un polgono sobre un punto de pvote.
Reporte
1.
2.
3.
4.
Portada
Descripcin del programa creado
Cdigo fuente del mtodo o funcin de rotacin
Conclusiones
Recursos
http://itmgraficacion.googlepages.com/
http://www.ieev.uma.es/tdi/www_netscape/TEMAS/Tdi_22/index5.php
Demel, John T. y Michael J. Miller. Grficas por computadora. Ed. Mc. Graw Hill.
Plastock, R. A. y Kaslley. Grficas por computadora. McGraw-Hill.
Wright, Richard. Programacin en OpenGL. Anaya Multimedia
Prctica 8 Escalacin Bidimensional
Material
Tener instalado OpenGL
Objetivo
Desarrollar un programa en OpenGL que realice una escalacin bidimensional
Graficacin
268
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 C
Desarrollo
El profesor explicar el procedimiento para realizar una escalacin bidimensional,
posteriormente el alumno programar una rutina que realice clculos para cambios de escala
en un polgono. El programa deber mostrar el polgono escalado.
Reporte
1.
2.
3.
4.
Portada
Descripcin del programa creado
Cdigo fuente del mtodo o funcin de escalacin
Conclusiones
Recursos
http://itmgraficacion.googlepages.com/
http://www.ieev.uma.es/tdi/www_netscape/TEMAS/Tdi_22/index6.php
Donald Hearn / M. Pauline Baker. Graficas por computadora. Ed. Prentice Hall
Hispanoamericana.
Woo, M., Neider, J., Davis, T., OpenGL Programming Guide, 2nd. Ed., Addison Wesley
Wright, Richard. Programacin en OpenGL. Anaya Multimedia
Prctica 9 Matrices Bidimensionales Compuestas
Material
Tener instalado OpenGL
Objetivo
Implementar una rutina en OpenGL que realice tres operaciones a travs de matrices
bidimensionales compuestas.
Graficacin
269
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 C
Desarrollo
El profesor explicar el procedimiento para realizar matrices bidimensionales
compuestas as como su utilidad. El alumno desarrollara un programa que realice una
escalacin, rotacin y traslacin de un tringulo.
Reporte
1.
2.
3.
4.
Portada
Descripcin del programa creado
Cdigo fuente de los mtodos o funciones en los cuales se crea y modifica la
matriz bidimensional
Conclusiones
Recursos
http://itmgraficacion.googlepages.com/
http://gsii.usal.es/~corchado/igrafica/descargas/temas/Tema06.pdf
Mortenson , Michael E. Mathematics for Computer Graphics Applications. Ed. Industrial Press
Inc.
Donald Hearn / M. Pauline Baker. Graficas por computadora. Ed. Prentice Hall
Hispanoamericana.
Wright, Richard. Programacin en OpenGL. Anaya Multimedia.
Prctica 10 Traslacin tridimensional
Material
Tener instalado OpenGL
Objetivo
Conocer el procedimiento para realizar la traslacin tridimensional de un objeto.
Graficacin
270
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 C
Desarrollo
El profesor mostrar el procedimiento matemtico para realizar una traslacin
trisimensional. El alumno crear una rutina que construir una matriz de traslacin
tridimensional.
Reporte
1.
2.
3.
4.
Portada
Descripcin del programa creado
Cdigo fuente del mtodo en el cual se crea la matriz de rotacin
Conclusiones
Recursos
http://itmgraficacion.googlepages.com/
http://gsii.usal.es/~corchado/igrafica/descargas/temas/Tema06.pdf
Foley, James D. y Andries Van Dam. Introduccin a la graficacin por computadora. Ed.
Addison Wesley Iberoamericana.
Buss, R. Samuel. Computer Graphics: An introduction with OpenGL. Cambridge University
Press.
Wright, Richard. Programacin en OpenGL. Anaya Multimedia
Prctica 11 Escalacin tridimensional
Material