Beruflich Dokumente
Kultur Dokumente
Los principales mtodos para graficar las primitivas bsicas mediante la discretizacin:
Evaluar su ecuacin diferencial a diferencias finitas: Este mtodo, denominado DDA (discrete
diference analyzer) consiste en plantear la ecuacin diferencial de la primitiva a discretizar, y luego
evaluar dicha expresin a intervalos adecuados.
Anlisis del error: Estos mtodos fueron desarrollados por Bressenham y se basan en analizar,
dado un pixel que pertenece a la discretizacin de la primitiva, cul es el prximo pixel que
minimiza una determinada expresin que evala el error que comete la discretizacin.
SEGMENTO DE LA RECTA
x = (x1 - x0) 0
y = (y1 - y0) 0, y
x y.
Figura 28, donde el origen es el pixel que corresponde a la discretizacin del punto (x0; y0) y la
zona sombreada a los lugares donde puede ubicarse el punto (x1; y1).
Como ya se mencion, los mtodos DDA evalan la ecuacin diferencial de la primitiva a intervalos
finitos. En el caso particular de los segmentos de recta, la ecuacin diferencial es:
El mtodo busca encontrar una secuencia de n + 1 puntos tales que (x0; y0) = (x0;y0); (x1;y1 );
(xn;yn) = (x1;y1 ). La discretizacin de cada uno de ellos son los pixeles de la discretizacin del
segmento. Esta propiedad, si bien es trivial, es de gran importancia porque determina que la
discretizacin de un segmento de recta es invariante frente a transformaciones afines. Esto
significa que es equivalente transformar los extremos del segmento y discretizar el segmento
transformado, o discretizar primero y transformar cada punto obtenido. Sin embargo, la primera
alternativa es mucho ms eficiente.
Discretizacin de circunferencias
Entonces para dibujar el crculo de un radio determinado, solamente tenemos que hacer un ciclo
desde 0 hasta 360, pero con incrementos pequeos, calcular cada punto con las ecuaciones en
coordenadas polares e ir dibujando cada punto. El ciclo en vez de ir de 0 a 360 (ngulos en grados)
ir de 0 a 6.28 (360*3.14/180=6.28) ya que el ngulo debe estar en radianes.
Dibujar el crculo punto a punto es una tarea un poco lenta, debido a que se debe calcular en cada
punto el seno y el coseno del ngulo, y estas funcionas son muy lentas. Para solucionar esto se
pueden crear tablas predefinidas o pre calculadas.
Discretizacin de polgonos
Se considera un polgono una figura cerrada, formada a partir de varias lneas. Para la
discretizacin de polgonos se considerarn 2 tipos de polgonos: los irregulares y los regulares.
Irregulares
Cabe recordar que en Java, al igual que en C, el ndice de los vectores inicia en 0. Por tanto, la
primera lnea se dibuja desde el primer punto (ndice 0) hasta el segundo punto (ndice 1),
contina del segundo al tercero (ndice 2), y as sucesivamente, hasta dibujar la lnea del
penltimo punto (ndice N-2) hasta el ltimo punto del vector (ndice N-1). Al finalizar el ciclo,
dibuja la lnea de cierre del polgono entre el ltimo punto (ndice N-1) y el primero (ndice 0).
Regulares
Crearemos polgonos regulares en base a una circunferencia que circunscribe nuestro polgono
regular. Esto implica, que el centro de la circunferencia coincide con el centro geomtrico de
cualquier polgono regular. Para esto, necesitamos usar algunas funciones trigonomtricas, junto
con el ngulo ya calculado. El paso principal es averiguar la coordenada del siguiente vrtice de
nuestro polgono.
x i = cx + r * cos( i*a )
y i = cy + r * sen( i*a )
Donde:
i = 0,1,2,...,N-1,
r es el radio de la circunferencia.
Al agregar el centro a nuestra frmula, conseguimos mover el centro geomtrico del origen (0,0) al
que nosotros deseemos.