You are on page 1of 11

UNIVERSIDAD DE CARTAGENA

PROGRAMAS DE EDUCACION ABIERTA Y A DISTANCIA


CREAD-CARMEN DE BOLIVAR

PROGRAMA: Ingeniera de sistemas

SEMESTRE: X (Decimo)

ASIGNATURA: Computacin Grafica

TUTOR (A): Genaldo Ros Sierra

ALUMNOS: Jos Vlez Hernndez


Harold Torres Bahamon
Juan Agudelo Daz
Ernesto Cabrera Pieres
Taller Grupal de Computacin Grafica

TEMA: Ejercicios Propuestos de Algoritmos con Ecuaciones Graficas

FECHA: Noviembre-06-2014

1. Determine la ecuacin de la circunferencia de centro C(3, 5) y radio igual a


7.
Solucin
Aplicamos la ecuacin:
(x - h)2 + (y - k)2 = r. Entonces se tiene:
(x - 3)2 + (y - 5)2 = 7
(x - 3)2 + (y - 5)2 = 72
x2 - 6x + 9 + y2 -10y + 25 = 72
x2 + y2 - 6x - 10y - 15 = 0

2. Determinar la ecuacin de una circunferencia que pasa por los puntos A


(4, 6); B (-2, -2) y C(-4,2)
Solucin
Los tres puntos dados siempre que no estn sobre una misma recta, determinan 3
Condiciones geomtricas que permiten definir a la circunferencia:
Reemplazando (4, 6) en:
x2 + y2 + Dx + Ey + F = 0
42 + 62 + 4D + 6E + F = 0
4D + 6E + F = - 52
Reemplazando (-2, -2) en:
x2 + y2 + Dx + Ey + F = 0
-2D - 2E + F = - 8

Reemplazando (-4, 2) en:


x2 + y2 + Dx + Ey + F = 0
-4D + 2E + F = - 20
Resolviendo el sistema:
4D + 6E + F = - 52
-2D - 2E + F = - 8
-4D + 2E + F = - 20
Se tiene:
D = - 2; E = - 4
F = - 20
Por tanto la ecuacin de la circunferencia es:
x2 + y2 - 2x - 4y -20 = 0

3. Hallar la ecuacin de la circunferencia que pasa por los puntos A (1, -2); B
(5, 4); R (10, 5)
Solucin
La ecuacin de la circunferencia se puede expresar de la siguiente forma:
x2 + y2 + Dx + Ey + F = 0
El problema al igual que en el anterior se reduce a encontrar valores para D, E y F
tales que la ecuacin se satisfaga por las coordenadas de cada uno de los puntos
dados. Por tanto sustituimos las variables x, y en las coordenadas de estos
puntos, dndonos el sistema de tres ecuaciones con tres variables:

1 + 4 + D - 2E + F = 0
25 + 16 + 5D + 4E + F = 0
100 + 25 + 10D + 5E + F = 0
La solucin de este sistema est dado por:
D = - 18
E = 6; F = 25
Por tanto la ecuacin buscada es:
x2 + y2 - 18x + 6y + 25 = 0.
De manera alternativa, este problema se resuelve aplicando la propiedad que las
bisectrices perpendiculares de dos cuerdas no paralelas de una circunferencia se
intersecan en el centro.
As, las ecuaciones de las mediatrices perpendiculares de AB y RC, tal como se
muestran en la figura:

Son: 2x + 3y = 9

5x + y = 42

La solucin de este sistema es:


x = 9; y = -3. C(9, -3)
El radio de la circunferencia es la distancia del centro a cualquiera de los puntos
dados. Por lo tanto la ecuacin resultante (la pedida) es:
(x - 9)2 + (y + 3)2 = 65; resolviendo nos da:
x2 + y2 - 18x + 6y + 25 = 0.
Determinar las ecuaciones de las rectas L que pasan por P(2, 3) y son tangentes a
: x2 + y2
-2x -2y -3 = 0
Solucin
Primero hallamos el centro y el radio de l, para ello expresamos la ecuacin en la
forma normal:
(X -1)2 + (y -1)2 = 5 C(1, 1) ; r = 5
Ahora hallamos el nmero de soluciones: dCP (2 -1)2 + (3 - 1)2 = 5 r
Entonces P 1 solucin.
Luego hallamos la pendiente del segmento que une el punto (2, 3) y el centro de la
Circunferencia:
mCP

= 2 mCP * mT

Con esta pendiente y el punto (2, 3)

Escribimos la ecuacin de la recta L: y 3

(x - 2) x + 2y - 8 = 0

Algoritmo del punto medio para Circunferencias

Una circunferencia se define como un conjunto de puntos que se encuentran, en


su totalidad, a una distancia determinada r de una posicin central.
Es posible reducir el clculo al considerar la simetra de las circunferencias, la
forma de la circunferencia es similar entre cuadrantes y simtrica entre octantes.
Para aplicar el mtodo del punto medio, definimos una funcin de circunferencia
como:
Pk = f circunferencia (x , y) = x2 + y2 r2
f circunferencia (x , y) < 0 est dentro de la frontera de la circunferencia.
f circunferencia (x , y) = 0 est en la frontera de la circunferencia.
f circunferencia (x , y) > 0 est fuera de la frontera de la circunferencia.
Los parmetros de decisin sucesivos se obtienen
incrementales.

al utilizar clculos

El algoritmo ser el siguiente:


*Se capturan el radio r y el centro de la circunferencia (xc , yc).
*Se obtiene el primer punto de la circunferencia centrada en origen (x c , yc) como
(0 , r).
*Se calcula el valor inicial del parmetro de decisin como p0 = 5/4 - r.
Para k = 0 hasta x> = y incrementa k
Si pk < 0
*Siguiente punto de la circunferencia con centro (0,0) es (xk+1 , yk).
*pk+1 = pk + 2x k+1 + 1.
Sino
*Siguiente punto de la circunferencia con centro (0,0) es (xk+1 , yk - 1).
*pk+1 = pk + 2x k + 1 + 1 - 2y k + 1.

//Donde 2x k+1 = 2x k + 2

2y k+1 = 2y k - 2

*Se determinan los puntos de simetra para los otros siete octantes.
*Se mueve cada posicin del pixel calculada (x,y) a la trayectoria circular centrada
en (xc , yc)
Y trazamos los valores de las coordenadas: x = x + xc
Fin Para
Codigo en Java seria
void CircleMidPoint(Graphics g, int xc, int yc, int r){
int x, y, p;
x = 0;
y = r;
p = 1 - r;
PlotPoint(g,xc,yc,x,y);
/* se cicla hasta trazar todo un octante */
while (x < y){
x = x + 1;
if (p < 0)
p = p + 2*x + 1;
else {
y = y - 1;
p = p + 2*(x - y) + 1;
}
PlotPoint(g,xc,yc,x,y);
}}

y = y + yc.

Algoritmo del punto medio para elipses


Una elipse se define como el conjunto de puntos en que la suma de las distancias
desde dos posiciones fijas sea la misma para todos los puntos. Una elipse en
posicin estndar es simtrica entre cuadrantes.
Para aplicar el mtodo del punto medio, definimos una funcin de elipse como:
Pk = f elipse (x , y) = ry2x2 + rx2y2 rx2 ry2
f elipse (x , y) < 0 est dentro de la frontera de la elipse.
f elipse (x , y) = 0 est en la frontera de la elipse.
f elipse (x , y) > 0 est fuera de la frontera de la elipse.
Los parmetros de decisin sucesivos se obtienen al utilizar clculos
incrementales.
El algoritmo seria el siguiente:
*Se capturan los radios rx, ry y el centro de la elipse (xc , yc).
*Se obtiene el primer punto de la elipse centrada en origen (xc, yc) como (0, ry).
*Se calcula el valor inicial del parmetro de decisin de la regin 1 como
p10 = ry2 - rx2ry + 0.25 rx2.
*En cada posicin xk en la regin 1 para k = 0
Si p1k < 0
Punto siguiente = (xk+1 , yk)
p1k+1 = p1k + 2ry2xk+1 + ry2
*Se calcula el valor inicial del parmetro de decisin de la regin 2 utilizando el
ltimo (x0 , y0)
Calculado en la regin 1 como p20 = ry2(x0 + 0.5)2 + rx2(y0 - 1)2 - rx2 ry2.
*En cada posicin yk en la regin 2 para k = 0
Si p2k > 0
Punto siguiente = (xk , yk-1)
p2k+1 = p2k - 2rx2yk+1 + rx2

*Se determinan los puntos de simetra para los otros tres cuadrantes.
*Se mueve cada posicin del pixel calculada (x,y) a la trayectoria elptica centrada
en (xc , yc)
Y trazamos los valores de las coordenadas: x = x + xc y x = x + xc.
*Se repiten los pasos de la regin 1 hasta que 2ry 2x0 >= 2rx 2y0

El Codigo en Java seria


public void Elipse(Graphics g, int xc, int yc, int rx, int ry){
int x, y, p, px, py;
int rx2, ry2, tworx2, twory2;
ry2 = ry*ry;
rx2 = rx*rx;
twory2 = 2 * ry2;
tworx2 = 2 * rx2;
/* regin 1 */
x = 0;
y = ry;
PlotPoint(x,y);
p = (int)Math.round(ry2 - rx2*ry + 0.25*rx2);
px = 0;
py = tworx2*y;
while (px < py) { /* se cicla hasta trazar la regin 1 */
x = x + 1;
px = px + twory2;
if (p < 0)

p = p + ry2 + px;
else {
y = y - 1;
py = py - tworx2;
p = p + ry2 + px - py;
}
PlotPoint(x,y);
}
/* regin 2 */
p = (int)Math.round(ry2*(x+0.5)*(x+0.5) + rx2*(y-1)*(y-1) - rx2*ry2);
px = 0;
py = tworx2*y;
while (y > 0) { /* se cicla hasta trazar la regin 2 */
y = y - 1;
py = py - tworx2;
if (p > 0)
p = p + rx2 - py;
else {
x = x + 1;
px = px + twory2;
p = p + rx2 + py + px;
}
PlotPoint(x,y);
}
}

You might also like