太阳、地球、月亮
2016-11-17 09:15
253 查看
void display(void)
{
glEnable(GL_DEPTH_TEST);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_PROJECTION);
//定义一个可视空间,其以外的物体不会绘制,实现近大远小的功能
glLoadIdentity();
gluPerspective(75, 1, 1, 1400000000);
glMatrixMode(GL_MODELVIEW); //进行变换前,需要把矩阵设为“模型视图矩阵”
glLoadIdentity();
gluLookAt(0, -200000000, 200000000, 0, 0, 0, 0, 0, 1);
glColor3f(1.0f, 0.0f, 0.0f); //红色太阳
glutSolidSphere(69600000, 20, 20);
glColor3f(0.0f, 0.0f, 1.0f); //蓝色地球
glRotatef(day / 360.0*360.0, 0.0f, 0.0f, -1.0f);
glTranslatef(150000000, 0.0f, 0.0f);
glutSolidSphere(15945000, 20, 20);
glColor3f(1.0f, 1.0f, 0.0f); //黄色月亮
glRotatef(day / 30.0*360.0 -day / 360.0*360.0, 0.0f, 0.0f, -1.0f);
glTranslatef(38000000, 0.0f, 0.0f);
glutSolidSphere(4345000, 20, 20);
glFlush();
}
{
glEnable(GL_DEPTH_TEST);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_PROJECTION);
//定义一个可视空间,其以外的物体不会绘制,实现近大远小的功能
glLoadIdentity();
gluPerspective(75, 1, 1, 1400000000);
glMatrixMode(GL_MODELVIEW); //进行变换前,需要把矩阵设为“模型视图矩阵”
glLoadIdentity();
gluLookAt(0, -200000000, 200000000, 0, 0, 0, 0, 0, 1);
glColor3f(1.0f, 0.0f, 0.0f); //红色太阳
glutSolidSphere(69600000, 20, 20);
glColor3f(0.0f, 0.0f, 1.0f); //蓝色地球
glRotatef(day / 360.0*360.0, 0.0f, 0.0f, -1.0f);
glTranslatef(150000000, 0.0f, 0.0f);
glutSolidSphere(15945000, 20, 20);
glColor3f(1.0f, 1.0f, 0.0f); //黄色月亮
glRotatef(day / 30.0*360.0 -day / 360.0*360.0, 0.0f, 0.0f, -1.0f);
glTranslatef(38000000, 0.0f, 0.0f);
glutSolidSphere(4345000, 20, 20);
glFlush();
}
相关文章推荐
- 运用Python 模拟太阳-地球-月亮运动模型
- 关于OpenGL入门中地球,月亮,太阳运动模拟无法显示的问题(只显示黑框)
- 模拟太阳、地球和月亮
- 太阳、地球、月亮
- SVG 模拟太阳 地球 月亮旋转
- 基于C#的2D太阳、地球、月亮运动轨迹模拟实现
- OpenGL入门记录--“太阳,地球和月亮”系统代码
- Transform类 RotateAround() 太阳、地球、月亮围绕旋转
- opengl: 太阳地球和月亮
- OpenGL 地球,月亮,太阳 相对运动
- OpenGL “太阳、地球和月亮”天体运动动画 例子
- 科学家警告:称2012年强太阳风暴将袭击地球(图)
- NASA:太阳2013将强烈磁暴 如百枚氢弹袭击地球
- OpenGL-----地球与太阳绕转代码
- OpenGL模拟太阳、地球、月球公转自转
- Canvas之太阳与地球
- 《佛密诸事》第二十二章:太阳与地球智慧生命
- discuz修改太阳,月亮,星星等级图标
- 玩转html5(五)---月球绕着地球转,地球绕着太阳转(canvas实现,同样可以动哦)
- 定时器实现的地球围绕太阳旋转