openGL相关#include // 太阳、地球和月亮// 假设每个月都是30天// 一年12个月,共是360天sta
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/16 00:53:30
openGL相关
#include
// 太阳、地球和月亮
// 假设每个月都是30天
// 一年12个月,共是360天
static int day = 200; // day的变化:从0到359
void myDisplay(void)
{
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);
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(); glutSwapBuffers();
}
void myIdle(void)
{
/* 新的函数,在空闲时调用,作用是把日期往后移动一天并重新绘制,达到动画效果 */
++day;
if( day >= 360 )
day = 0;
myDisplay();
}
int main(int argc,char *argv[])
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE); // 修改了参数为GLUT_DOUBLE
glutInitWindowPosition(100,100);
glutInitWindowSize(400,400);
glutCreateWindow("太阳,地球和月亮"); // 改了窗口标题
glutDisplayFunc(&myDisplay);
glutIdleFunc(&myIdle); // 新加入了这句
glutMainLoop();
return 0;
}
为什我的vc6.0运行后屏幕全是黑色的教程上说是太阳月亮和地球的模型
#include
// 太阳、地球和月亮
// 假设每个月都是30天
// 一年12个月,共是360天
static int day = 200; // day的变化:从0到359
void myDisplay(void)
{
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);
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(); glutSwapBuffers();
}
void myIdle(void)
{
/* 新的函数,在空闲时调用,作用是把日期往后移动一天并重新绘制,达到动画效果 */
++day;
if( day >= 360 )
day = 0;
myDisplay();
}
int main(int argc,char *argv[])
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE); // 修改了参数为GLUT_DOUBLE
glutInitWindowPosition(100,100);
glutInitWindowSize(400,400);
glutCreateWindow("太阳,地球和月亮"); // 改了窗口标题
glutDisplayFunc(&myDisplay);
glutIdleFunc(&myIdle); // 新加入了这句
glutMainLoop();
return 0;
}
为什我的vc6.0运行后屏幕全是黑色的教程上说是太阳月亮和地球的模型
glTranslatef(150000000, 0.0f, 0.0f);//把所有尺寸都除个大数,比如10000000
glutSolidSphere(15945000, 20, 20);
成为这样
glTranslatef(15.0, 0.0f, 0.0f);
glutSolidSphere(1.5945, 20, 20);
就可以画出来了.
glutSolidSphere(15945000, 20, 20);
成为这样
glTranslatef(15.0, 0.0f, 0.0f);
glutSolidSphere(1.5945, 20, 20);
就可以画出来了.
openGL相关#include // 太阳、地球和月亮// 假设每个月都是30天// 一年12个月,共是360天sta
一年12个月的每个月 英文单词是?
一年里12个月平均每个月有多少天
月亮绕地球转一圈时间是27-28天,就是说有半个月的时间里,月亮会在地球和太阳中间我们看不到月亮
从地球看月亮的一个月是30天,那么从月亮看地球的"一个月"是多少天?
一般一年365天如果是365天的话,每个月平均多少天?如果一年6个月那平均每个月多少天?
日,月,年和地球太阳月亮什么关系?
2010年1月30日,出现了稀有的天文现象:太阳、地球、月亮和火星处在同一直线上,该天月亮距地球最近.已知火星到太阳的距
5月12日地震那天同时出现一个太阳和一个月亮,这是为什么?
月缺月圆是怎样形成的月缺月圆和太阳、月亮、地球有什么关系?怎样形成了月缺月圆?
在2010年1月30日,出现了稀奇的天文现象—太阳,地球,月亮,火星处在同一直线上,而且该天同时是月亮距地球最近,已知火
6月份有30天,某年6月有5个星期一和星期二,那么这一年的6月1日是星期几?正确解