lunes, 14 de mayo de 2007

Pseudocodigo Iluminacion por Raster

int v1x,v1y,v2x,v2y,v3x,v3y,v4x,v4y; //vertices

void ilumina(){

float *Ax,*Ay;

float *A'x,*A'y;

float *Bx,*By;

float *B'x,*B'y;

float *Cx,*Cy;

float *C'x,*C'y;
int ret;

if(ordena1==1){ //la funcion ordena devulve el vertice de mayor ordenada

B'x=bresenham1(*Ax,*Ay,*By,*Bx) //se utiliza el algoritmo de Bresenham
B'y=bresenham2(*Ax,*Ay,*By,*Bx)
color(r,g,b,B'x);
color(r,g,b,B'y);
C'x=bresenham1(*Ax,*Ay,*Cy,*Cx)
C'y=bresenham2(*Ax,*Ay,*Cy,*Cx)
color(r,g,b,C'x);
color(r,g,b,C'y);


}



if(ordena2==1){
B'x=bresenham1(*Ax,*Ay,*By,*Bx)
B'y=bresenham2(*Ax,*Ay,*By,*Bx)
color(r,g,b,B'x);
color(r,g,b,B'y);
C'x=bresenham1(*Ax,*Ay,*Cy,*Cx)
C'y=bresenham2(*Ax,*Ay,*Cy,*Cx)
color(r,g,b,C'x);
color(r,g,b,C'y);
}
if(ordena3==1){
B'x=bresenham1(*Ax,*Ay,*By,*Bx)
B'y=bresenham2(*Ax,*Ay,*By,*Bx)
color(r,g,b,B'x);
color(r,g,b,B'y);
C'x=bresenham1(*Ax,*Ay,*Cy,*Cx)
C'y=bresenham2(*Ax,*Ay,*Cy,*Cx)
color(r,g,b,C'x);
color(r,g,b,C'y);
}
if(ordena4==1){
B'x=bresenham1(*Ax,*Ay,*By,*Bx)
B'y=bresenham2(*Ax,*Ay,*By,*Bx)
color(r,g,b,B'x);
color(r,g,b,B'y);
C'x=bresenham1(*Ax,*Ay,*Cy,*Cx)
C'y=bresenham2(*Ax,*Ay,*Cy,*Cx)
color(r,g,b,C'x);
color(r,g,b,C'y);
}
while(By!=Cy){

if( B'y<=c'y&& c'y==cy){
A'y=cy
A'x=cx}


if( c'y<=B'y&& B'y==By){
Ay=By
Ax=Bx}


if(c'y=cy){
cy=V3Y
cx=v3X
}

if( B'y==By){
By=V3Y
Bx=v3X
}

}
B'x=bresenham1(*Ax,*Ay,*By,*Bx)
B'y=bresenham2(*Ax,*Ay,*By,*Bx)
color(r,g,b,B'x);
color(r,g,b,B'y);
C'x=bresenham1(*Ax,*Ay,*Cy,*Cx)
C'y=bresenham2(*Ax,*Ay,*Cy,*Cx)
color(r,g,b,C'x);
color(r,g,b,C'y);


}
}


int ordena1(){
if(v2y<=v1y>=v3y && v1y>=v4y){
Ay=A'y=v1y;
Ax=A'x=v1x;
if(v3y<=v2y>=v4y({
By=B'y=v2y;
Bx=B'x=v2x;

if(v3y<=v4y{
cy=c'y=v4y;
cx=c'x=v4x;
}else{

cy=c'y=v3y;
cx=c'x=v3x;
}
}
if(v2y<=v3y>=v4y){
By=B'y=v3y;
Bx=B'x=v3x;
if(v2y<=v4y{
cy=c'y=v4y;
cx=c'x=v4x;
}else{

cy=c'y=v2y;
cx=c'x=v2x;
}
}

}

if(v3y<=v4y>=v2y){
By=B'y=v4y;
Bx=B'x=v4x;
if(v3y<=v2y{
cy=c'y=v2y;
cx=c'x=v2x;
}else{

cy=c'y=v3y;
cx=c'x=v3x;
}
}
verif=1;
}

else
verif=0;
}


}

1 comentario:

UnPet dijo...

Este pseudocodigo tambien se podria con el algoritmo DDA?
Hay algunos programas que utilizan el algoritmo dda o el de Bresenham?