Professional Documents
Culture Documents
INTRODUCCION.............................................................................................................................. 1
PROCEDIMIENTO ........................................................................................................................... 1
PUNTO MEDIO PARA CIRCULOS ................................................................................................ 2
CODIGO ........................................................................................................................................ 2
RESULTADO DESPUES DE IMPLEMENTAR .......................................................................... 4
PUNTO MEDIO PARA ELIPSES..................................................................................................... 4
CODIGO ........................................................................................................................................ 5
RESULTADO DESPUES DE IMPLEMENTAR .......................................................................... 6
CONCLUCION .................................................................................................................................. 7
BIBLIOGRAFA Y REFERENCIAS DE INTERNET ..................................................................... 7
INTRODUCCION
En esta actividad trata de codificar u programa para realizar algunas para mostrar los dos
mtodos de dibujar un circulo, aplicando funciones se codifico el mtodo del punto medio
y el mtodo de trigonomtricas o la pitagrica aplicando la
biblioteca de funciones
graficas en openGL ya que esta proporciona una biblioteca bsica de funciones para
especificar primitivas grficas, atribuos, transformaciones geomtricas, transformaciones
de visualizacin y muchas otras operaciones que se pueden realizar, basndonos en el
libro Computer Graphics with OpenGL de Donald Hearn, se realiz esta prctica y se
estuvo "jugando" con el cdigo para ver su funcionamiento, as tambin, sus diferentes
cambios de colores se utiliz como lenguaje principal C++.
PROCEDIMIENTO
El siguiente segmento de cdigo ilustra los procedimientos que podran emplearse para
implementar el algoritmo del punto medio para generacin de crculos. AI procedimiento
c i r c l e M i d p o i n t hay que pasarle el valor del radio del crculo y las coordenadas del
centro del crculo. Entonces, se calcula una posicin de pxel dentro del primer octanle de
la trayectoria circular y se pasa dicha posicin al procedimiento c i r c l e P l o t P o i n t s
1
CODIGO
vo i d decr ementy ( ) (
y. - :
)
I:
void s e t Pi xel (GLi nt xCoord , GLin t yeoord)
(
BIBegin (GL_POI NTS) :
8lVertex2i (xCoor d , y e oord ):
BlEnd ( ) ;
I
Una elipse es una circunferencia alargada. Por lo tanto, las curvas elpticas se pueden
generar al modificar los procedimientos para el trazo de circunferencias con el fin de
considerar las diversas dimensiones de una elipse a lo largo de los ejes mayor y menor.
CODIGO
i n l i n e int round (const f l o a t a) { r e t u r n i n t (a + 0 . 5 ) ; }
/ * El s i g u i e n t e p r o c e d i m i e n t o a c e p t a v a l o r e s que d e f i n e n el c e n t ro
* de la e l i p s e y s u s s e m i e j e s mayor y menor, c a l c u l a n d o l as
p o s i c i o n e s de la e l i p s e mediante el a l g o r i t m o d e l punto medio.
*/
void e l l i p s e M i d p o i n t (int xCenter, i n t y C e n t e r , i n t Rx, int Ry)
{
i n t Rx2 Rx * RX;
i n t Ry2 Ry * Ry;
int twoRx2 = 2 * Rx2;
i n t twoRy2 = 2 * Ry2, n t p;
i u t x 0;
i n t y A Ry;
i n t px = 0;
i n t py twoRx2 * y;
voidellipsePlotPoints(int,int,int,int);
/ * Dibujar el punto i n i c i a l en cada c u a d r a n t e . */
e l l i p s e P l o t P o i n t s (xCenter, yCenter, x, y) ;
/ * Region 1 */
p = round (Ry2 - (Rx2 * Ry) + ( 0 . 2 5 * Rx2>) ;
w h i l e (px < py) {
X++;
px += tWORy2;
i f (p < 0)
p += Ry2 + px;
else{
y-;
py -= twoRx2;
p +- Ry2 + px - py;
}
e l l i p s e P l o t P o i n t s (xCenter, yCenter, x, y) ;
}
/ * Regi6n 2 */
p = round (Ry2 * (x+0.5) * (x+0.5) + Rx2 * (y-1) * (y-1) - Rx2 * Ry2);
5
w h i l e (y > 0) {
y-;
py -= twoRx2;
i f (p > 0)
p += RX2 - py;
else{
x++ ;
px += twoRy2;
p += Rx2 - py + px;
e l l i p s e P l o t P o i n t s (xCenter, yCenter, x, y );
}
}
v o i d e l l i p s e P l o t P o i n t s (int xCenter, int yCenter, int x, int y );
{
s e t P i x e l (xCenter + x, yCenter + y );
s e t P i x e l (xCenter - x, yCenter + y) ;
s e t P i x e l (xCenter + x, yCenter - y );
s e t P i x e l (xCenter - x, yCenter - y );
}
CONCLUCION
Se desarrollaron dos programas para mostrar los dos mtodos de dibujar un crculo
Aplicando funciones se codifico el mtodo del punto medio y el mtodo de
trigonomtricas o la pitagrica