Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Estos cambios fueron realizados por Oscar Javier Abaunza Garca, docente de la
UNAD, CEAD Bucaramanga, ingeniero de sistemas, especialista en educacin
superior a distancia, en su desempeo como tutor y director del curso a nivel
nacional.
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD
Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Ingeniera de Sistemas Mdulo del curso Computacin Grfica
Introduccin
Intencionalidades Formativas
Propsitos
Objetivos
Competencias
Metas
Productos de Aprendizaje
Individual
Grupo de Curso
Leccin 16 JDK
El JDK (Java Development Kit) comprende todas las herramientas necesarias para
la programacin en JAVA, a continuacin se presenta una relacin de sus
principales componentes:
short Tamao 16 bits. Valores desde -215 hasta 215-1 (-32768 a 32767)
18.2. Caracteres
En Java los caracteres no estn limitados a los presentes en la tabla ASCII, son
Unicode. Un caracter se presenta siempre entre comillas simples ej. 'A', '5', '', etc.
El tipo de dato char se emplea para almacenar estos caracteres.
\r Retorno de carro (hace que se mueva el cursor a la primera posicin de una lnea)
18.3 Variables
en coma flotante Las variables del tipo float o double (coma flotante) se
emplean para almacenar valores que poseen parte entera y
parte decimal. Ej. float var1 = 4.3f; double var1 = 3.5;
Netbeans: NetBeans es un proyecto de cdigo abierto de gran xito con una gran
base de usuarios, una comunidad en constante crecimiento, y con cerca de 100
socios en todo el mundo. Sun MicroSystems fund el proyecto de cdigo abierto
NetBeans en junio de 2000 y contina siendo el patrocinador principal de los
proyectos.
Modularidad. Todas las funciones del IDE son provistas por mdulos. Cada mdulo
provee una funcin bien definida, tales como el soporte de Java, edicin, o soporte
para el sistema de control de versiones. NetBeans contiene todos los mdulos
necesarios para el desarrollo de aplicaciones Java en una sola descarga,
permitindole al usuario comenzar a trabajar inmediatamente.
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD
Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Ingeniera de Sistemas Mdulo del curso Computacin Grfica
Gestin de proyectos
Plantillas de proyecto
Finalizacin de cdigo
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD
Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Ingeniera de Sistemas Mdulo del curso Computacin Grfica
interfaz de depuracin
Editor con resaltado de sintaxis
Asistentes
Interfaz de usuario totalmente personalizable
20.1 Compilacin
20.2 Ejecucin
Es muy difcil escoger un conjunto de primitivas grficas que sea adecuado para la
representacin de todo tipo de entidades grficas. Sin embargo, el siguiente
subconjunto resulta suficiente en la prctica:
Dada una primitiva grfica a discretizar, debemos encontrar los pixeles que la
representen de la manera ms correcta posible. Para ello, lo ms adecuado es
caracterizar matemticamente a dicha primitiva, de modo que su discretizacin
pueda efectuarse en forma sencilla. Entre los diversos mtodos que pueden
plantearse destacamos los dos siguientes:
x = (x1 - x0 ) 0,
y = (y1 - y0 ) 0, y
x y.
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD
Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Ingeniera de Sistemas Mdulo del curso Computacin Grfica
mismo pixel. Por el contrario, un valor muy grande determinara que el segmento
aparezca punteado en vez de ser continuo como corresponde. Un valor prctico
es elegir x = 1 y por lo tanto n = x, es decir, la discretizacin tiene tantos pixeles
como longitud tiene el segmento en la variable que ms vara (ms uno, dado que
la secuencia tiene n + 1 puntos). Al mismo tiempo es fcil ver que
3. Java no tiene una sentencia bsica para dibujar puntos (pixeles), en este
caso se utiliza la sentencia g.drawRect (lnea 35) para dibujar un rectngulo
con un ancho y alto de 0, que en su ejecucin se traduce a pintar un nico
pixel ubicado en el punto enviado como parmetro.
4. En la misma sentencia g.drawRect (lnea 35) se utiliza el casting a enteros
para lograr la discretizacin de las coordenadas flotantes.
centro del pixel elegido y el segmento de recta, medida en direccin del eje Y
positivo del espacio de pantalla (es decir, hacia abajo). Si el error en p fuese cero,
entonces al ir hacia E el error pasa a ser m (la pendiente del segmento), y en D el
error pasa a ser m - 1 (ver Figura 44).
Paso a E : e = e + m
Paso a D : e = e + m 1
Por lo tanto, la eleccin del paso E o D depende de que el valor absoluto de e+m
sea o no menor que el valor absoluto de e+m-1. Expresado de otra manera, sea e
el error en un determinado pixel. Si e +m> 0.5 entonces el segmento de recta pasa
ms cerca del pixel D, y si no, pasa ms cerca del pixel E (ver Figura 45).
Una de las economas de cmputo del mtodo proviene de poder evaluar el error
preguntando por cero. Es fcil ver que si se inicializa el error en e = m 0.5
entonces en cada paso hay que chequear e >0 para elegir D. La otra economa
proviene de realizar manipulaciones algebraicas para efectuar un cmputo
equivalente pero en aritmtica entera. Como se evala el error por cero, multiplicar
el error por una constante no afecta el resultado. Por lo tanto, multiplicamos el error
por 2x. A partir de dicho cambio, se constatan las siguientes igualdades:
y
e0 2x 0.5 2y x
x
Paso a E : e = e+2y
Paso a D: e = e+2(y-x)
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD
Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Ingeniera de Sistemas Mdulo del curso Computacin Grfica
x r * cos
y r * sen
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD
Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Ingeniera de Sistemas Mdulo del curso Computacin Grfica
Estas ecuaciones sern las que ocuparemos para calcular cada punto (x,y) del
crculo, donde el r ser obviamente el radio de crculo y ser el ngulo que forma
el radio con la parte positiva del eje x. En forma grfica sera as:
El ngulo deber estar en radianes ya que las funciones de seno y coseno que
incluye Java, trabajan con los ngulos en radianes. La frmula para transformar
grados a radianes es la siguiente:
gra dos *
radianes
180
Como se podr deducir del cdigo el objeto Punto incluye las coordenadas x e y de
un punto en el plano cartesiano.
x i = cx + r * cos( i* )
y i = cy + r * sen( i* )
donde:
i = 0,1,2,...,N-1,
r es el radio de la circunferencia, y
c = (cx, cy) es la coordenada del centro geomtrico de la circunferencia y del
polgono.
CAPTULO 6 Transformaciones
Las imgenes grficas que se han generado estn compuestas por un conjunto de
segmentos que estn representados por las coordenadas de sus extremos.
Algunos cambios en la imagen pueden ser fcilmente realizados mediante la
aplicacin de algunas operaciones matemticas sobre estas coordenadas. Antes
de ver algunas de las posibles transformaciones, es necesario repasar algunas de
las herramientas matemticas que se necesitarn, como la multiplicacin de
matrices.
Esta es una propiedad muy til ya que permitir combinas varias transformaciones
grficas en una sola transformacin, produciendo como resultado unos clculos
ms eficientes.
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD
Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Ingeniera de Sistemas Mdulo del curso Computacin Grfica
De forma matemtica A = AI
Cmo se aplica todo esto a los grficos? Bueno, consideremos un punto P1=[x1
y1] como una matriz de 1x2. Si la multiplicamos por una matriz T2x2, obtendremos
otra matriz que puede ser interpretada como otro punto.
Por tanto, la matriz T es una aplicacin entre el punto original P1 y el nuevo punto
P2. Si suponemos la imagen compuesta por los vrtices de un polgono. Qu
pasar si transformamos cada uno de los puntos mediante una multiplicacin por
una matriz T y dibujamos el resultado? Qu aspecto tendr esta nueva imagen?
La respuesta, por supuesto, depende de los elementos de la matriz T. Si, por
ejemplo, escogemos la matriz identidad entonces la imagen no se ver alterada.
entonces
Cada una de las nuevas coordenadas x tiene el doble de valor que las antiguas.
Las lneas horizontales sern dos veces ms largas en la nueva imagen. La nueva
imagen tendr la misma altura, pero parecer que la hemos estirado hasta alcanzar
el doble del ancho original.
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD
Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Ingeniera de Sistemas Mdulo del curso Computacin Grfica
Leccin 28 Rotacin
De forma anloga:
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD
Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Ingeniera de Sistemas Mdulo del curso Computacin Grfica
Dando
A la vista de estas ecuaciones podemos imaginar una matriz que relacione las
coordenadas del punto original y del punto girado:
Para una rotacin en el sentido de las agujas del reloj, basta sustituir en la
expresin anterior el valor del ngulo por - . As nos queda
En general, con el fin de trasladar un imagen (Tx, Ty), cada punto (x1, y1) se
convierte en uno nuevo (x2, y2) donde
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD
Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Ingeniera de Sistemas Mdulo del curso Computacin Grfica
Tal combinacin sera deseable; por ejemplo, hemos visto que la rotacin alrededor
de un punto que no sea el origen puede realizarse mediante una traslacin, una
rotacin u otra traslacin. Sera deseable combinar estas tres transformaciones en
una sola transformacin por motivos de eficacia y elegancia. Una forma de hacer
esto es emplear matrices 3x3 en vez de matrices 2x2, introduciendo una
coordenada auxiliar w. Este mtodo recibe el nombre de coordenadas
homogneas. En estas coordenadas, los puntos estn definidos por tres
coordenadas y no por dos. As un punto (x, y) estar representado por la tripleta
(xw, yw, w). Las coordenadas x e y se pueden recuperar fcilmente dividiendo los
dos primeros nmeros por el tercero respectivamente. No emplearemos la
coordenada w hasta que no veamos las transformaciones tridimensionales de
perspectiva. En dos dimensiones su valor suele ser 1 para simplificar. Sin embargo,
lo veremos de forma general como anticipo de las transformaciones
tridimensionales.
se convierte en
Si dividimos ahora por el tercer valor w tenemos (Exx, Eyy) que es el punto correcto
cambiado de escala.
La rotacin es
Cabe destacar que esta matriz se puede formar tambin mediante una rotacin
inicial de ngulo y una traslacin definida por los valores contenidos en la tercera
fila.
-1 0
0 1 Reflexin respecto al eje y
1 0
0 -1 Reflexin respecto al eje x
-1 0
0 -1 Reflexin respecto al origen
0 1
1 0 Reflexin respecto a la recta y=x
0 -1
-1 0 Reflexin respecto a la recta y=-x
1 a
0 1 Deformacin en el eje y
1 0
b 1 Deformacin en el eje x
Las primeras tres reflexiones son simples cambios de escala pero con factores
negativos. Las simetras respecto a las rectas y=x e y=-x pueden realizarse
mediante un cambio de escale y un giro posterior. Es posible realizar las
deformaciones mediante una secuencia de rotaciones y cambios de escala, aunque
es mucho ms fcil aplicar la matriz resultante. De igual forma se pueden construir
transformaciones de cambio de escala y rotacin a partir de las deformaciones.
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD
Escuela de Ciencias Bsicas, Tecnologa e Ingeniera
Ingeniera de Sistemas Mdulo del curso Computacin Grfica