• 大小: 2.12MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-08-14
  • 语言: 其他
  • 标签:

资源简介

vc控制台程序 OpenGL太阳、地球、月亮纹理实现。 请大家多多指教。

资源截图

代码片段和文件信息

#include “LoadBMP.h“

void myinit(void) 
{
glClearColor (0.0 0.0 0.0 0.0);

glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glEnable(GL_DEPTH_TEST);
glEnable(GL_TEXTURE_2D); //启用二维纹理

GLfloat light0_ambient[]  = {1 1 1 1}; //环境光
GLfloat light0_diffuse[]  = {1 1 1 1}; //散射光
GLfloat light0_position[] = {0 0 0 1}; //光源位置

glLightfv(GL_LIGHT0GL_AMBIENTlight0_ambient);
glLightfv(GL_LIGHT0GL_DIFFUSElight0_diffuse);
glLightfv(GL_LIGHT0GL_POSITIONlight0_position);

LoadAllTextures(); //调入纹理
}

void myidle()
{
day+=angle;
glutPostRedisplay();

}

void mymouse(int buttonint stateint xint y)
{
if(state==GLUT_DOWN && button==GLUT_LEFT_BUTTON){
if(first)
{
glutIdleFunc(myidle);
first=!first;
}
else
{
glutIdleFunc(0);
first=!first;
}
}
}

void mykeyboard(unsigned char key int x int y) 
{
if (key == 27)         
exit(0); 


void mydisplay(void)
{
year=day/365;
month=day/30;

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

GLfloat mat_ambient1[]  = {1001};
GLfloat mat_emission[]  = {1110};

GLfloat mat_ambient2[]  = {0.40.40.81};
GLfloat  no_emission[]  = {0001};

glPushMatrix();
glBindTexture(GL_TEXTURE_2Dsun->texID);
glRotatef (month 0.0 1.0 0.0); //太阳自转
glMaterialfv(GL_FRONT GL_AMBIENT mat_ambient1);
glMaterialfv(GL_FRONT GL_EMISSION mat_emission);
glRotatef (90 -1 0 0);
gltDrawSphere(1.0 40 40); //绘制太阳
glPopMatrix();

glPushMatrix();
glRotatef (year 0.0 1.0 0.0); //月亮与地球一起绕太阳转(地球公转)
glPushMatrix();
glBindTexture(GL_TEXTURE_2Dearth->texID);
glTranslatef (3.0 0.0 0.0);
glRotatef (month 0.0 1.0 0.0); //地球自转 
glMaterialfv(GL_FRONT GL_AMBIENT mat_ambient2);
glMaterialfv(GL_FRONT GL_EMISSION no_emission);
glRotatef (90 -1 0 0);
gltDrawSphere(0.4 40 40); //绘制地球
glPopMatrix();

glPushMatrix();
glBindTexture(GL_TEXTURE_2Dmoon->texID);
glTranslatef (3.0 0.0 0.0);
glRotatef (60 -1 1 0);
glRotatef (month 0 1.0 0); //月球绕地球转
glTranslatef (0.6 0.0 0.0);
glRotatef (90 -1 0 0);
gltDrawSphere(0.07 20 20); //绘制月球
glPopMatrix();
glPopMatrix();

glFlush();
glutSwapBuffers();   
}

void myreshape (int w int h)
{
glViewport (0 0 (GLsizei) w (GLsizei) h); //指定视口大小
glMatrixMode (GL_PROJECTION);
glLoadIdentity ();

gluPerspective(60.0 (GLfloat) w/(GLfloat) h 1 20); //透视投影

glMatrixMode(GL_MODELVIEW);
glLoadIdentity();

gluLookAt (0.0 0.0 5.0 0.0 0.0 0.0 0.0 1.0 0.0); //指定照相机的位置
}

int main(int argc char** argv)
{
glutInit(&argc argv);
glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
glutInitWindowSize (1000 600); 
glutInitWindowPosition (100 100);
glutCreateWindow (argv[0]);
myinit ();

glutDisplayFunc(mydisplay); 
glutReshapeFunc(myreshape);
glutIdleFunc(myidle);
glutMouseFunc(mymou

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2012-04-05 19:44  太阳系模型__沈敢 计科094\
     目录           0  2012-04-05 19:44  太阳系模型__沈敢 计科094\Debug\
     文件      515576  2007-08-18 01:43  太阳系模型__沈敢 计科094\Debug\earth.bmp
     文件       43256  2007-08-18 01:33  太阳系模型__沈敢 计科094\Debug\moon.bmp
     文件       28920  2012-03-19 21:16  太阳系模型__沈敢 计科094\Debug\solar.obj
     文件      172856  2007-08-18 01:29  太阳系模型__沈敢 计科094\Debug\sun.bmp
     文件      140288  2012-03-19 21:16  太阳系模型__沈敢 计科094\Debug\vc60.idb
     文件       77824  2012-03-19 21:16  太阳系模型__沈敢 计科094\Debug\vc60.pdb
     文件      217181  2012-03-19 21:16  太阳系模型__沈敢 计科094\Debug\太阳系模型.exe
     文件      259856  2012-03-19 21:16  太阳系模型__沈敢 计科094\Debug\太阳系模型.ilk
     文件     3709072  2012-03-19 20:53  太阳系模型__沈敢 计科094\Debug\太阳系模型.pch
     文件      418816  2012-03-19 21:16  太阳系模型__沈敢 计科094\Debug\太阳系模型.pdb
     文件      515576  2007-08-18 01:43  太阳系模型__沈敢 计科094\earth.bmp
     文件        5489  2012-03-19 20:53  太阳系模型__沈敢 计科094\LoadBMP.h
     文件       43256  2007-08-18 01:33  太阳系模型__沈敢 计科094\moon.bmp
     文件        3156  2012-03-19 21:16  太阳系模型__沈敢 计科094\solar.cpp
     文件      172856  2007-08-18 01:29  太阳系模型__沈敢 计科094\sun.bmp
     文件        4389  2012-03-19 20:31  太阳系模型__沈敢 计科094\太阳系模型.dsp
     文件         545  2012-03-19 20:21  太阳系模型__沈敢 计科094\太阳系模型.dsw
     文件       50176  2012-03-19 21:16  太阳系模型__沈敢 计科094\太阳系模型.ncb
     文件       48640  2012-03-19 21:16  太阳系模型__沈敢 计科094\太阳系模型.opt
     文件         904  2012-03-19 21:16  太阳系模型__沈敢 计科094\太阳系模型.plg

评论

共有 条评论

相关资源