-
大小: 2.12MB文件類型: .zip金幣: 2下載: 0 次發(fā)布日期: 2023-08-14
- 語(yǔ)言: 其他
- 標(biāo)簽:
資源簡(jiǎn)介
vc控制臺(tái)程序 OpenGL太陽(yáng)、地球、月亮紋理實(shí)現(xiàn)。
請(qǐng)大家多多指教。

代碼片段和文件信息
#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}; //環(huán)境光
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(); //調(diào)入紋理
}
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); //太陽(yáng)自轉(zhuǎn)
glMaterialfv(GL_FRONT?GL_AMBIENT?mat_ambient1);
glMaterialfv(GL_FRONT?GL_EMISSION?mat_emission);
glRotatef?(90?-1?0?0);
gltDrawSphere(1.0?40?40); //繪制太陽(yáng)
glPopMatrix();
glPushMatrix();
glRotatef?(year?0.0?1.0?0.0); //月亮與地球一起繞太陽(yáng)轉(zhuǎn)(地球公轉(zhuǎn))
glPushMatrix();
glBindTexture(GL_TEXTURE_2Dearth->texID);
glTranslatef?(3.0?0.0?0.0);
glRotatef?(month?0.0?1.0?0.0); //地球自轉(zhuǎn)?
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); //月球繞地球轉(zhuǎn)
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); //指定照相機(jī)的位置
}
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
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2012-04-05?19:44??太陽(yáng)系模型__沈敢?計(jì)科094\
?????目錄???????????0??2012-04-05?19:44??太陽(yáng)系模型__沈敢?計(jì)科094\Debug\
?????文件??????515576??2007-08-18?01:43??太陽(yáng)系模型__沈敢?計(jì)科094\Debug\earth.bmp
?????文件???????43256??2007-08-18?01:33??太陽(yáng)系模型__沈敢?計(jì)科094\Debug\moon.bmp
?????文件???????28920??2012-03-19?21:16??太陽(yáng)系模型__沈敢?計(jì)科094\Debug\solar.obj
?????文件??????172856??2007-08-18?01:29??太陽(yáng)系模型__沈敢?計(jì)科094\Debug\sun.bmp
?????文件??????140288??2012-03-19?21:16??太陽(yáng)系模型__沈敢?計(jì)科094\Debug\vc60.idb
?????文件???????77824??2012-03-19?21:16??太陽(yáng)系模型__沈敢?計(jì)科094\Debug\vc60.pdb
?????文件??????217181??2012-03-19?21:16??太陽(yáng)系模型__沈敢?計(jì)科094\Debug\太陽(yáng)系模型.exe
?????文件??????259856??2012-03-19?21:16??太陽(yáng)系模型__沈敢?計(jì)科094\Debug\太陽(yáng)系模型.ilk
?????文件?????3709072??2012-03-19?20:53??太陽(yáng)系模型__沈敢?計(jì)科094\Debug\太陽(yáng)系模型.pch
?????文件??????418816??2012-03-19?21:16??太陽(yáng)系模型__沈敢?計(jì)科094\Debug\太陽(yáng)系模型.pdb
?????文件??????515576??2007-08-18?01:43??太陽(yáng)系模型__沈敢?計(jì)科094\earth.bmp
?????文件????????5489??2012-03-19?20:53??太陽(yáng)系模型__沈敢?計(jì)科094\LoadBMP.h
?????文件???????43256??2007-08-18?01:33??太陽(yáng)系模型__沈敢?計(jì)科094\moon.bmp
?????文件????????3156??2012-03-19?21:16??太陽(yáng)系模型__沈敢?計(jì)科094\solar.cpp
?????文件??????172856??2007-08-18?01:29??太陽(yáng)系模型__沈敢?計(jì)科094\sun.bmp
?????文件????????4389??2012-03-19?20:31??太陽(yáng)系模型__沈敢?計(jì)科094\太陽(yáng)系模型.dsp
?????文件?????????545??2012-03-19?20:21??太陽(yáng)系模型__沈敢?計(jì)科094\太陽(yáng)系模型.dsw
?????文件???????50176??2012-03-19?21:16??太陽(yáng)系模型__沈敢?計(jì)科094\太陽(yáng)系模型.ncb
?????文件???????48640??2012-03-19?21:16??太陽(yáng)系模型__沈敢?計(jì)科094\太陽(yáng)系模型.opt
?????文件?????????904??2012-03-19?21:16??太陽(yáng)系模型__沈敢?計(jì)科094\太陽(yáng)系模型.plg
評(píng)論
共有 條評(píng)論