mcount--;
//设置三角面片的的三个点
for(j=0;j<3;j++)
{
int vi=face_indicies[i][j];
int ni=face_indicies[i][j+3];//Normal index
int ti=face_indicies[i][j+6];//Texture index
//设置顶点的法线
glNormal3f (normals[ni][0],normals[ni][1],normals[ni][2]);
//设置顶点的坐标
glVertex3f (vertices[vi][0],vertices[vi][1],vertices[vi][2]);
}
}
glEnd ();
glEndList();
}; //函数中使用的数组变量,包括材质、法线、面和顶点的值都在number0.cpp中
使用同样的方法步骤,得到了number1.cpp至number9.cpp。利用这10个显示列表函数,可以通过程序调用生成任意的三维数据显示。下面以两位数为例说明:
//显示个位数字
glPushMatrix();
//设置个位数字显示的位置
glTranslatef(-18.5,high_tai+high1+1.5,2.0);
//设置个位数字显示的旋转角度
glRotatef(num_rot,0.0,-1.0,0.0);
//调用显示列表,显示个位数字
glCallList(num1+10);
glPopMatrix();
//显示十位数字
glPushMatrix();
//设置十位数字显示的位置
glTranslatef(-17.0,high_tai+high1+1.5,2.0);
//设置十位数字显示的旋转角度
glRotatef(num_rot,0.0,-1.0,0.0);
//调用显示列表,显示十位数字
|