Week 9 Assignment

 

Problem2-3

//*************************************************************

void drawShadedTriangle(Vec3d A, Vec3d B, Vec3d C){
newMouseX= mouseX-windowW/2;
newMouseY= mouseY-windowH/2;
Vec3d AB= B-A;
Vec3d AC= C-A;
Vec3d Normal= AB.cross(AC);

Normal= Normal/Normal.getLength();

Vec3d L (100,0,300);
glColor3f(1,1,0);
glPointSize(20.0f);
glBegin(GL_POINTS);
glVertex3f(newMouseX,newMouseY,0);
glEnd();




float shade= L.dot(Normal);

glColor3f(shade*0.2, shade* 0.005, shade * 0.005);


glBegin(GL_TRIANGLE_STRIP);
//glBegin(GL_LINE_STRIP);
glVertex3f(A.x,A.y,A.z);
glVertex3f(B.x,B.y,B.z);

glVertex3f(C.x,C.y,C.z);
glEnd();


}
//*************************************************************

void drawMesh(){

const int meshW =40;
const int meshH =40;
Vec3d mesh [meshW] [meshH];


for( int x=0; x<meshW; x++){
for (int z=0; z< meshH; z++){
float y= 10 + sin(x);
mesh[x][z].x=x*20-350;
//mesh[x][z].y= 15*sin(x)-200+ cos(z+mouseX*0.1)*10;
mesh[x][z].y= 15*sin(x+mouseX*0.1)-200;
//mesh[x][z].y= 20*sin(x)-200+ sin(z)*15;
//mesh[x][z].y+= 5*(sin(x)*4);
//mesh[x][z].y= -100;
//mesh[x][z].y+= (20*sin_deg((x/Wavelength*360.0)*Frecuency)+Phase);

mesh[x][z].z=z*20;

}
}

for( int x=0; x<40-1; x++){
for( int z=0; z<40-1; z++)
{
Vec3d A= mesh[x][z];
Vec3d B= mesh[x+1][z];
Vec3d C= mesh[x+1][z+1];

drawShadedTriangle(A,B,C);

}
}


}