Вы находитесь на странице: 1из 7

Instituto Tecnolgico de Cd. Guzmn Graficacin Unidad I.

Introduccin a la graficacin por computadora


Primitivas bsicas de dibujo
Trazado de una circunferencia
Para trazar un crculo solo es necesario conocer el radio la ubicacin del punto central de !sta. "#isten diversas ecuaciones o formulas $ue nos permiten obtenerlo% en estas notas solo se vern dos de !stas% la primera basada en coordenadas cartesianas &rectangulares' la segunda basada en coordenadas polares &funciones trigonom!tricas'.

maria eugenia puga nat(al

Pgina )

*+,)*,*-).

Ecuacin polinomial cuadrada (reducida) de la circunferencia "l tipo de coordenadas utilizadas para este caso son las cartesianas. Punto central de la circunferencia igual a cero r* / # * 0 * 11111111 r / 2 #* 0 * donde r es la distancia o radio desde el punto central a cual$uier punto de la circunferencia. Punto central de la circunferencia diferente a cero r* / &# 3 (' * 0 & 3 4 ' * 11111111111111111 d&C%P' / 2 &# 3 (' * 0 & 3 4 ' * / r P un punto cual$uiera de la recta C punto central de la circunferencia r radio o distancia de la circunferencia desde el punto C a cual$uier punto P de la circunferencia Coordenadas polares Para representar grficamente un lugar geom!trico establecer su ecuacin% muc(as veces conviene el empleo de otro sistema de coordenadas distinto al cartesiano% !ste es el caso del sistema de coordenadas polares. "n este sistema se elige en el plano un punto O% $ue se le llama polo recibe el nombre de eje polar% tiene su origen en el polo. una semirrecta fija $ue

5as coordenadas rectangulares pertenecen al sistema cartesiano% el cual% en ciertos casos tambi!n emplea ejes oblicuos en vez de perpendiculares. 5a posicin de un punto 6 en el plano% $ueda determinado por el segmento 76 $ue se representa por r por el ngulo 8 $ue dic(o segmento forma con el eje polar. r 8 son las coordenadas del punto 6 r recibe el nombre de radio vector 8 se le conoce con el nombre de ngulo polar% ngulo vectorial o argumento de 6 5as coordenadas para el punto 6 se escriben9 6&r% 8'

"l ngulo polar se mide considerando el eje polar como lado inicial el radio vector como lado final. :e considera positivo% cuando se genera en sentido contrario al movimiento de las manecillas del reloj negativa en el caso opuesto.

maria eugenia puga nat(al

Pgina *

*+,)*,*-).

Relacin entre coordenadas rectangulares y las polares Considerar $ue el origen de un sistema de coordenadas rectangulares coincide con el polo direccin positiva del eje de las ;% es decir 7; coincide con el eje polar. "ntonces% para un punto 6 del plano se tiene9 6&#% ' en el sistema de coordenadas rectangulares 6&r% 8' en el sistema de coordenadas polares :e observa $ue entre las coordenadas cartesianas pueden establecer las siguientes relaciones9 a' # / r cos 8 b' / r sen 8 c' #* 0 * / r* d' 8 / arc tan & , #' 111111 e' r / 2 #* 0 * 111111 f' sen 8 / , 2 #* 0 * 111111 g' cos 8 / # , 2 #* 0 * las polares de un mismo punto del plano se la

Para mas informacin sobre este tema% consultar cual$uier libro de geometra analtica. Grados-Radianes < radianes / )=-> Grados Cadianes -> .-> <,A ) radian / )=-> , < ?@> <,? A-> <,. B-> <,* )> / &< , )=-' radianes )*-> *<,. ).@> .<,? )@-> @<,A )=-> D *+-> .<,* .A-> *<

Algoritmos para trazar una circunferencia "#isten varios algoritmos $ue nos permiten trazar una circunferencia entre los $ue se mencionan9 3 algoritmo general o directo de la circunferencia 3 algoritmo del m!todo incremental 3 algoritmo del punto medio 3 algoritmo de Eresen(am algoritmo general o directo de la circunferencia :e basa en la ecuacin general de la circunferencia% con centro en el origen9 #* 0 * / r*. Como el trazado de una circunferencia se usa normalmente fuera del origen% la formula se amplia9 &#3#c'* 0 & 3 c'* / r*% donde #c maria eugenia puga nat(al
c

son las coordenadas del punto central de la circunferencial. Pgina . *+,)*,*-).

Para dibujar la circunferencia% se incrementa de manera unitaria a # de Fr a r% y. 1111111111 / c 2 r* 3 &#3#c'* algoritmo circulo1general&entero #c% entero c% entero r' inicio entero # double )% * para #/#c3r (asta #G/#c0r con incrementos en # de * unidades inicio )/ c0raizCuadrada&cuadrado&r'3cuadrado&#3#c'' */ c3raizCuadrada&cuadrado&r'3cuadrado&#3#c'' dibujarPi#el&#% redondear& )'' dibujarPi#el&#% redondear& *'' fin fin

se calcula el valor de

"ntre las desventajas $ue presenta este algoritmo estn9 3 Ho aprovec(a la simetra% se (ace el trazado de la mitad de la circunferencia% por lo $ue por cada incremento de #% se trata de dibujar dos puntos 3 5as operaciones de potencia re$uieren muc(o tiempo de ejecucin 3 Presenta segmentacin al apro#imarse al eje de las #% a $ue al acercarse los puntos a este eje% se pintan mas separados algoritmo incremental Tiene como fundamento la representacin param!trica polar de la circunferencia se creo para corregir el algoritmo anterior en lo $ue respecta a la separacin de los puntos $ue no se ven cerca del eje #. # / #c 0 &r cos 8' / c 0&r sen 8' donde 8 se mide en radianes de - a *< r es el radio &#c% c' es la coordenada del punto del centro de la circunferencia Como la longitud de un arco de circunferencia es rI8 el radio r son constantes% los incrementos de d8 iguales% dan espaciamientos uniformes% (aciendo $ue la circunferencia se vea JparejaK rI8 / ) 8 / ),r el coseno

Una de las desventajas $ue presenta este algoritmo es el calculo continuo del seno de 8 de 8 para cada incremento angular% lo cual consume muc(o tiempo. Los puntos consecutivos9 #) / r cos 8 ) / r sen 8 #* / r cos &8 0 d8' * / r sen &8 0 d8'

donde d8 es un paso angular constante de tamaMo fijo. maria eugenia puga nat(al Pgina ? *+,)*,*-).

Nplicando la identidad trigonom!trica para calcular el seno tenemos9 cos &8 0 d8' / &cos 8'&cos d8' 3 &sen 8'&sen d8' sen &8 0 d8' / &sen 8'&cos d8' 0 &cos 8'&sen d8' :ustitu endo #*
*

coseno de la suma de dos ngulos

#* / &r cos 8'&cos d8' 3 &r sen 8'&sen d8' * / &r sen 8'&cos d8' 0 &r cos 8'&sen d8' :ustitu endo #)
)

#* / #) cos d8 3 ) sen d8 * / ) cos d8 0 #) sen d8 Nl iniciar% #/-% /r% "l sen 8% el cos 8 se calcula solo una vez al inicio del proceso

:e aprovec(a la simetra de la circunferencia lo $ue disminu e el nOmero de clculos9 P)&#% ' P@&3#% 3 ' P*& % #' PA&3 % 3#' P.& % 3#' P+&3 % #' P?&3#% ' P=&#% 3 ' algoritmo circulo1incremental&entero #c% entero c% entero r' inicio entero t#% t double dt% cc% ss% #% % au# dt / &double' ),r cc/coseno&dt' ss/seno&dt' #//r mientras & P/valorNbsoluto&#'' inicio t#/redondear&#' t /redondear& ' dibujarPi#el&#c0t#% c0t ' dibujarPi#el&#c3t#% c0t ' dibujarPi#el&#c0t#% c3t ' dibujarPi#el&#c3t#% c3t ' dibujarPi#el&#c0t % c0t#' dibujarPi#el&#c0t % c3t#' dibujarPi#el&#c3t % c0t#' dibujarPi#el&#c3t % c3t#' au#/# #/#Icc3 Iss / Icc0au#Iss fin fin maria eugenia puga nat(al Pgina @ *+,)*,*-).

algoritmo de Bresenham "n este algoritmo se calculan los puntos de -> a ?@>% algo similar $ue el anterior se aprovec(a de la simetra de la circunferencia para obtener el trazado del resto de los puntos. "st nuevamente basado en la ecuacin de la recta polinomial de segundo grado. 11 Le #/- a #/ r , 2 * Nl igual $ue en el algoritmo de la recta% se toman dos posibles valores9 N&#i0)% i' E&#i0)% i3)' r* / &#i0)'* 0 * * / r* 3 &#i0)'* d&a'/ i* 3 * d&b'/ * F & i 3)'* d&a'/ i* F r* 0 &#i0)'* d&b'/ r* 3 &#i0)'* F & i 3)'* :i la distancias (acia algunos puntos candidatos es igual a -% el punto est sobre la circunferencia% sino es lo anterior% toma el punto mas cercano9 P) / d&a' F d&b' P) / i* F r* 0 &#i0)'* 3 r* 0 &#i0)'* 0 & i 3)'* P) / *&#i0)'* 0 i* 0 & i 3)'* F *r* :i el punto inicial es #/-% /r Pi / *&-0)'* 0 r* 0 &r 3)'* F *r* Pi / * 0 r* 0 &r 3)'* F *r* Pi / * 0 r* 0 r* F *r 0) F *r* Pi / . 3 *r :i el valor de Pi G #i0)/#i0) i0)/ i r* / &#i0)'* 0 & i'* p i0) / pi 0 ?#i 0 A :i el valor de Pi P/ #i0)/#i0) i0)/ i 3 ) * * r / &#i0)' 0 & i 3 )'* p i0) / pi 0 ?&#i 3 i'0 )). seleccionar como punto inicial la coordenada &o% r' donde r / radio *. calcular el primer parmetro como9 P/.3*r .. incrementando # en pasos unitarios% calcular cada parmetro sucesivo de p i0) a partir de los siguiente9 :i piGsisi i0)/ i p i0) / pi 0 ?#i 0 A

maria eugenia puga nat(al

Pgina A

*+,)*,*-).

:i piPsisi i0)/ i 3 ) p i0) / pi 0 ?&#i 3 i'0 )?. repetir paso . (asta $ue # sea ma or o igual $ue Para dibujar la circunferencia% aplicar la simetra de la circunferencia para los siete puntos restantes% en los clculos se obtiene el primer punto&#% '% por lo $ue bastara $ue se va an intercambiando estas dos coordenadas% al igual $ue sus signos algoritmo circulo1Eresen(am&entero #c% entero c% entero r' inicio entero p% #% #//r p/.3*Ir mientras &#G/ ' inicio dibujarPi#el&#c0#% c0 ' dibujarPi#el&#c3#% c0 ' dibujarPi#el&#c0#% c3 ' dibujarPi#el&#c3#% c3 ' dibujarPi#el&#c0 % c0#' dibujarPi#el&#c0 % c3#' dibujarPi#el&#c3 % c0#' dibujarPi#el&#c3 % c3#' si pGsi si p/p0?I#0A si no inicio p/p0?I&#3 '0)/ 3) fin #/#0) fin fin

maria eugenia puga nat(al

Pgina +

*+,)*,*-).

Вам также может понравиться