void _stdcall display (void){
// glClearColor(1.0,0.0,1.0,1.0); //设置背景颜色
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); //设置背景颜色
glColor3f(1.0,1.0,0.0);//设置绘制图形所用颜色 //设置图形转换信息
glLoadIdentity(); //清空矩阵
glTranslatef(0.0,-1.0,-5.0); //把圆柱体向Y负方向平移1单位,向Z负方向平移5单位
glRotatef(15.0,1.0,0.0,0.0); //把圆柱体绕X轴旋转15°
//具体绘制图形
for(int i=0;i <N;i++)
drawSurface(&bottomVertex[i][0],&bottomVertex[i+1][0],&topVertex[i+1][0],&topVertex[i][0]);
//绘制最后一个缺口
drawSurface(&bottomVertex[N-1][0],&bottomVertex[0][0],&topVertex[0][0],&topVertex[N-1][0]);
glFlush();//结束图形绘制的顶点给定,并最终输出至显示器完成图形的显示
}
void drawSurface(double *v1,double *v2,double *v3,double *v4)
{
glBegin(GL_POLYGON);//绘制侧面
glNormal3dv(v1);
glVertex3dv(v1); glNormal3dv(v2);
glVertex3dv(v2); glNormal3dv(v2);
glVertex3dv(v3); glNormal3dv(v1);
glVertex3dv(v4);
glEnd();
glBegin(GL_TRIANGLES);//绘制上底
glNormal3d(0.0,1.0,0.0);//法线向上
glVertex3dv(v3); glNormal3d(0.0,1.0,0.0);
glVertex3dv(O2); glNormal3d(0.0,1.0,0.0);
glVertex3dv(v4);
glEnd();
//因为下底面不接受光照,所以完全可以不绘制下底以加快速度
/* glBegin(GL_TRIANGLES);//绘制下底
glNormal3d(0.0,-1.0,0.0);//法线向下
glVertex3dv(v2); glNormal3d(0.0,-1.0,0.0);
glVertex3dv(O1); glNormal3d(0.0,-1.0,0.0);
glVertex3dv(v1);
glEnd();
*/
}
// glClearColor(1.0,0.0,1.0,1.0); //设置背景颜色
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); //设置背景颜色
glColor3f(1.0,1.0,0.0);//设置绘制图形所用颜色 //设置图形转换信息
glLoadIdentity(); //清空矩阵
glTranslatef(0.0,-1.0,-5.0); //把圆柱体向Y负方向平移1单位,向Z负方向平移5单位
glRotatef(15.0,1.0,0.0,0.0); //把圆柱体绕X轴旋转15°
//具体绘制图形
for(int i=0;i <N;i++)
drawSurface(&bottomVertex[i][0],&bottomVertex[i+1][0],&topVertex[i+1][0],&topVertex[i][0]);
//绘制最后一个缺口
drawSurface(&bottomVertex[N-1][0],&bottomVertex[0][0],&topVertex[0][0],&topVertex[N-1][0]);
glFlush();//结束图形绘制的顶点给定,并最终输出至显示器完成图形的显示
}
void drawSurface(double *v1,double *v2,double *v3,double *v4)
{
glBegin(GL_POLYGON);//绘制侧面
glNormal3dv(v1);
glVertex3dv(v1); glNormal3dv(v2);
glVertex3dv(v2); glNormal3dv(v2);
glVertex3dv(v3); glNormal3dv(v1);
glVertex3dv(v4);
glEnd();
glBegin(GL_TRIANGLES);//绘制上底
glNormal3d(0.0,1.0,0.0);//法线向上
glVertex3dv(v3); glNormal3d(0.0,1.0,0.0);
glVertex3dv(O2); glNormal3d(0.0,1.0,0.0);
glVertex3dv(v4);
glEnd();
//因为下底面不接受光照,所以完全可以不绘制下底以加快速度
/* glBegin(GL_TRIANGLES);//绘制下底
glNormal3d(0.0,-1.0,0.0);//法线向下
glVertex3dv(v2); glNormal3d(0.0,-1.0,0.0);
glVertex3dv(O1); glNormal3d(0.0,-1.0,0.0);
glVertex3dv(v1);
glEnd();
*/
}
解决方案 »
- 一道很有意思的逻辑思维题?
- Remoting外网客户端无法返回远程对象
- AES加密解密代码错误,不知问题出在哪?
- 求一个正则表达式,包含至少一个数字,16位由小写字母和数字组成的字符串,如3e4e23fadc83a77e
- 在多层系统开发如何使用Enterprise library。。。
- google中国编程挑战赛-练习题之三(250分题)
- 一个超级难的问题,请各位高手近来看一看
- xml文件添加节点的问题??请各位高手帮忙解决一下
- 存储过程问题
- wpf如何锁定图像内存
- C#的变量名、函数名、过程名等大都可以使用中文文字,这样开发出来的软件能像纯英文那样的软件可靠运行吗?
- 诚求一套微软C#视频教程(关于RSS Reader的)
如何与其对应的调用起来不太清楚呢,还往高手指教