Algoritmo del punto medio en c++ con opengl

Páginas: 2 (426 palabras) Publicado: 4 de abril de 2011
Algoritmos de Punto Medio
Recta
void aRectaPuntoMedio(int x0,int y0,int x1,int y1)
{
int h,k,incr_e,incr_ne,d,x,y,ux=1,uy=1;
bool ic=false;
h=x0;
k=y0;
x1=x1-h;
y1=y1-k;if(y1<0){
uy=-1;
y1=-y1;
}
if(x1<0){
ux=-1;
x1=-x1;
}
if(x1<y1){
ic=true;
x1=x1+y1;//intercambio
y1=x1-y1;
x1=x1-y1;
}
d=2*y1-x1;
incr_e=y1*2;incr_ne=(y1-x1)*2;
x=0;
y=0;
glBegin(GL_POINTS);
glVertex2f(h,k);
while(x<x1){
if(d<=0){
d+=incr_e;
}else{
d+=incr_ne;
y++;
}
x++;
int px,py;
if(ic){
px=y;py=x;
}else{
px=x;
py=y;
}
px=ux*px;
py=uy*py;
glVertex2f(px+h,py+k);
}
glEnd();
}

Circunferencia
void aCircunferenciaPuntoMedio(int h, int k, int R) {
int x=0;
inty=R,d=1-R;
glBegin(GL_POINTS);
glVertex2f( x+h, y+k);
glVertex2f( x+h,-y+k);
glVertex2f(-x+h, y+k);
glVertex2f(-x+h,-y+k);
glVertex2f( y+h, x+k);
glVertex2f( y+h,-x+k);glVertex2f(-y+h, x+k);
glVertex2f(-y+h,-x+k);
while (x<y){
if (d<0){
d+=2*x+3;
}else{
d+=2*(x-y)+5;
y--;
}
x++;
glVertex2f( x+h, y+k);
glVertex2f( x+h,-y+k);glVertex2f(-x+h, y+k);
glVertex2f(-x+h,-y+k);
glVertex2f( y+h, x+k);
glVertex2f( y+h,-x+k);
glVertex2f(-y+h, x+k);
glVertex2f(-y+h,-x+k);
}
glEnd();
}

Elipse

voidaElipsePuntoMedio(int h, int k, int a, int b)
{
int x=0;
int y=b;
int a2=a*a;
int b2=b*b;
GLfloat d=b2+a2*(0.25-b);
glBegin(GL_POINTS);
glVertex2f( x+h, y+k);
glVertex2f( x+h,-y+k);glVertex2f(-x+h, y+k);
glVertex2f(-x+h,-y+k);
while (b2*x<a2*y){
d+=b2*(2*x+3);
if (d>0){
d-=a2*(2*y-2);
y--;
}
x++;
glVertex2f( x+h, y+k);
glVertex2f( x+h,-y+k);glVertex2f(-x+h, y+k);
glVertex2f(-x+h,-y+k);
}
glEnd();
x=a;
y=0;
d=a2+b2*(0.25-a);
glBegin(GL_POINTS);
glVertex2f( x+h, y+k);
glVertex2f( x+h,-y+k);
glVertex2f(-x+h, y+k);...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Algoritmo de la linea del punto medio de breseham
  • Algoritmo Del Punto Medio
  • algoritmos c++
  • Algoritmos c++
  • Punto C
  • Punto Medio
  • punto medio
  • punto medio

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS