VS2013运行不了opengl动态图

「已注销」 2016-11-29 11:16:02
我的VS运行静态图,比如画个圆什么的都没问题,可是当画动态图的时候就没有了,结果就是这样的

求大神指教
#include<windows.h>
#include<math.h>
#include<gl/glut.h>
static int day = 200;

void myDisplay()
{

glEnable(GL_DEPTH_TEST); //启动深度测试

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); //清空深度缓冲和颜色缓冲
glMatrixMode(GL_PROJECTION); //操作投影矩阵
glLoadIdentity(); //进行变换前通常把当前矩阵设置为单位矩阵
gluPerspective(75, 1, 1, 400000000); //设置可视空间,得到透视效果(可视角,高宽比,最近可视距离,最远可视距离)
glMatrixMode(GL_MODELVIEW); //设置当前操作的矩阵为“模型视图矩阵”
glLoadIdentity(); //把当前矩阵设置为单位矩阵
gluLookAt(0, -200000000, 200000000, 0, 0, 0, 0, 0, 1); //设定观察点位置(观察点位置,目标位置,观察者上方向)


glColor3f(1.0f, 0.0f, 0.0f);
//glRotatef(day/360.0*360.0, 0.0f,0.0f,-1.0f);
glutSolidSphere(69600000, 50, 50);

glColor3f(0.0f, 0.0f, 1.0f);
glRotatef(day, 0.0f, 0.0f, -1.0f);
glTranslatef(150000000, 0.0f, 0.0f);
glutSolidSphere(15945000, 50, 50);

glColor3f(1.0f, 1.0f, 0.0f);
glRotatef(day / 30.0*360.0 - day, 0.0f, 0.0f, -1.0f);
glTranslatef(38000000, 0.0f, 0.0f);
glutSolidSphere(4345000, 50, 50);

glutSwapBuffers();
}

void play()
{
day++;
if (day >= 360)
day = 0;
myDisplay();
Sleep(100);
glutPostRedisplay();
}


int main(int argv, char* argc[])
{
glutInit(&argv, argc);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutInitWindowPosition(400, 400);
glutInitWindowSize(400, 400);
glutCreateWindow("study");

glutDisplayFunc(play);

glutMainLoop();
return 0;
}//< / strong>< / span>

...全文
106 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2016-11-30
  • 打赏
  • 举报
回复
搜网络教程“学OpenGL编3D游戏”。

24,855

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧