Dx = (x1 - x0 ) 0,
Dy = (y1 - y0 ) 0, y
Dx Dy.
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 Dx = 1 y por lo tanto n = Dx, 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 2Dx. A partir de dicho cambio, se constatan las siguientes igualdades:
Dy
e0 = 2Dx
- 0.5 = 2Dy - Dx
x
D
Paso a E : e = e+2Dy
Paso a D: e = e+2(Dy-Dx)
x = r * cos q
y = r * sen q
Estas ecuaciones sern las que ocuparemos para calcular cada punto (x,y) del
crculo, donde el r ser obviamente el radio de crculo y q 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:
radianes =
gra dos * p
180
Como se podr deducir del cdigo el objeto Punto incluye las coordenadas x e y de
un punto en el plano cartesiano.
CAPTULO 6 Transformaciones
Naturalmente, as como se desean dibujar grficos, tambin se desea moverlos,
rotarlos, cambiar su tamao, etc. En esta seccin se presentan los principales
fundamentos matemticos que subyacen al proceso de transformacin de los
grficos en dos dimensiones, a partir de lo mostrado por el euitmt WWW team de la
Universidad de Oviedo. Se espera que el estudiante en su proceso de
profundizacin realice los algoritmos que permitan hacer estas transformaciones.
Una de las mayores virtudes de los grficos generados por ordenador es la
facilidad con se pueden realizar algunas modificaciones sobre las imgenes. Un
gerente puede cambiar la escala de las grficas de un informe. Un arquitecto puede
ver un edificio desde distintos puntos de vista. Un cartgrafo puede cambiar la
escala de un mapa. Un animador puede modificar la posicin de un personaje.
Estos cambios son fciles de realizar porque la imagen grfica ha sido codificada
en forma de nmeros y almacenada en el interior del ordenador. Los nmeros son
susceptibles a las operaciones matemticas denominadas transformaciones.