{ }
void Normal(double a[3], double b[3], double c[3], double n[3]) {
for(int a = 0; a < 36; a++) { }
for(int r = 0; r < 10; r++) { }
parabolicSurf[a][r][0] = (DELTA*r)*cos(a*PI2/36.0); parabolicSurf[a][r][1] = (DELTA*r)*sin(a*PI2/36.0); parabolicSurf[a][r][2] = (DELTA*r)*(DELTA*r);
int i;
double p[3], q[3];
for(i = 0; i < 3; i++) { }
p[i] = b[i] - a[i]; q[i] = c[i] - a[i];
n[0] = p[1]*q[2] - p[2]*q[1];
}
n[1] = p[2]*q[0] - p[0]*q[2]; n[2] = p[0]*q[1] - p[1]*q[0];
double t = n[0]*n[0] + n[1]*n[1] + n[2]*n[2];
t = sqrt(t);
for(i = 0; i < 3; i++)
n[i] /= t;
void ComputeVertexNormal() {
double quadNormal[36][9][3]; double n[3]; double t;
int a; int r; int i;
for(a = 0; a < 36; a++) {
for(r = 0; r < 9; r++)
}
{ }
Normal(parabolicSurf[a][r],
parabolicSurf[a][r + 1],
parabolicSurf[(a + 1)6][r + 1], quadNormal[a][r]);
for(a = 0; a < 36; a++) { }
vertexNormal[a][0][0] = 0.0; vertexNormal[a][0][1] = 0.0; vertexNormal[a][0][2] = 1.0;
for(a = 0; a < 36; a++) {
for(r = 1; r < 9; r++) {
for(i = 0; i < 3; i++) {
n[i] = 0.0;
n[i] += quadNormal[a][r][i]; n[i] += quadNormal[a][r - 1][i];
}
n[i] += quadNormal[(a - 1 + 36)6][r][i]; n[i] += quadNormal[(a - 1 + 36)6][r - 1][i];
t = n[0]*n[0] + n[1]*n[1] + n[2]*n[2];
t = sqrt(t);
}
}
for(i = 0; i < 3; i++) { }
vertexNormal[a][r][i] = n[i]/t;
for(a = 0; a < 36; a++) {
r = 9;
for(i = 0; i < 3; i++) {
n[i] = 0.0;
n[i] += quadNormal[a][r - 1][i];
n[i] += quadNormal[(a - 1 + 36)6][r - 1][i];
}
}
t = n[0]*n[0] + n[1]*n[1] + n[2]*n[2];
t = sqrt(t);
}
for(i = 0; i < 3; i++) { }
vertexNormal[a][r][i] = n[i]/t;
void MakeImage(void) {
int i, j, c;
//棋盘
for (i = 0; i < checkImageHeight; i++) { for (j = 0; j < checkImageWidth; j++) { c = ((((i&0x8)==0)^((j&0x8))==0))*255; checkImage[i][j][0] = (GLubyte) c; checkImage[i][j][1] = (GLubyte) c; checkImage[i][j][2] = (GLubyte) c;
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库图形学实验报告(5)在线全文阅读。
相关推荐: