資源簡介
一個用OpenGL實(shí)現(xiàn)的立體旋轉(zhuǎn)球,幫助學(xué)習(xí)OpenGL的用戶快速學(xué)習(xí),提供一個簡單的例子供參考。

代碼片段和文件信息
#include?
#include?
#include?
#define?M_PI?3.14159
typedef?double?point[3];
static?double?translate=0.0;
static?bool?m=false;
static?bool?n=false;
unsigned?char?key;
double?c=3.14159/180.0;
double?thetaphixyz;
GLfloat?static?rsphere=0.0;
GLsizei?ww=500?wh=500;
void?myInit()
{
glClearColor(1.01.01.01.0);
glColor3f(1.01.00.0); ???????????
GLfloat?light_position[]={20.030.00.00.0};
GLfloat?light_ambient[]={0.00.00.01.0};
GLfloat?light_diffuse[]={1.01.01.01.0};
GLfloat?light_specular[]={1.01.01.01.0};
glLightfv(GL_LIGHT0GL_AMBIENTlight_ambient);
glLightfv(GL_LIGHT0GL_DIFFUSElight_diffuse);
glLightfv(GL_LIGHT0GL_SPECULARlight_specular);
glLightfv(GL_LIGHT0?GL_POSITION?light_position);
glColorMaterial(GL_FRONTGL_DIFFUSE);
glEnable(GL_COLOR_MATERIAL);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0500.00.0500.0-10.010.0);
glMatrixMode(GL_MODELVIEW);
}
void?draw_sphere()
{
void?draw_sphere_2();
void?myReshaped(intint);
glClear(GL_COLOR_BUFFER_BIT?|?GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glTranslatef(0.00.0translate);
glRotatef(55.01.00.00.0);
glRotatef(rsphere0.00.01.0);
for(phi=-80.0;?phi<=80.0;?phi+=10)
{
glBegin(GL_QUAD_STRIP);
for(theta=-180.0;?theta<=180.0;?theta+=10.0)
{
x=sin(c*theta)*cos(c*phi);
y=cos(c*theta)*cos(c*phi);
z=sin(c*phi);
glNormal3d(xyz);
glVertex3d(xyz);
x=sin(c*theta)*cos(c*(phi+10.0));
y=cos(c*theta)*cos(c*(phi+10.0));
z=sin(c*(phi+10.0));
glNormal3d(xyz);
glVertex3d(xyz);
}
glEnd();
}
x=0.0;
y=0.0;
z=1.0;
????glBegin(GL_TRIANGLE_FAN);
glNormal3d(xyz);
glVertex3d(xyz);
z=sin(c*80.0);
for(theta=-180;?theta<=180.0;?theta+=10)
{
x=sin(c*theta)*cos(c*80.0);
y=cos(c*theta)*cos(c*80.0);
glNormal3d(xyz);
glVertex3d(xyz);
}
glEnd();
x=y=0;
z=-1;
glBegin(GL_TRIANGLE_FAN);
glNormal3d(xyz);
glVertex3d(xyz);
z=-sin(c*80.0);
for(theta=-180;?theta<=180.0;?theta+=10)
{
x=sin(c*theta)*cos(c*80.0);
y=cos(c*theta)*cos(c*80.0);
glNormal3d(xyz);
glVertex3d(xyz);
}
glEnd();
if(n)
{
draw_sphere_2();
}
glFlush();
glutSwapBuffers();
}
void?draw_line()
{
for?(phi=-80.0;phi<=80.0;phi+=10.0)
{
glBegin(GL_LINES);
for(theta=-180.0;theta<=180.0;theta+=10.0)
{
x=sin(c*theta)*cos(c*phi);
y=cos(c*theta)*cos(c*phi);
z=sin(c*phi);
glVertex3d(xyz);
x=1.2*sin(c*theta)*cos(c*phi);
y=1.2*cos(c*theta)*cos(c*phi);
z=1.2*sin(c*phi);
glVertex3d(xyz);
}
glEnd();
}
glFlush();
glutSwapBuffers();
}
void?draw_sphere_2()
{
glPushAttrib(GL_ALL_ATTRIB_BITS);
glPushMatrix();
glTranslatef(3.00.00.0);
glRotatef(55.01.00.00.0);
glRotatef(rsphere
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????217088??2009-05-08?23:10??立方體旋轉(zhuǎn)\計(jì)算機(jī)圖形學(xué)立方體旋轉(zhuǎn)?更新版\sphere\Debug\sphere.exe
?????文件?????245008??2009-04-10?22:56??立方體旋轉(zhuǎn)\計(jì)算機(jī)圖形學(xué)立方體旋轉(zhuǎn)?更新版\sphere\Debug\sphere.ilk
?????文件??????26581??2009-04-10?22:56??立方體旋轉(zhuǎn)\計(jì)算機(jī)圖形學(xué)立方體旋轉(zhuǎn)?更新版\sphere\Debug\sphere.obj
?????文件?????349352??2009-04-10?22:56??立方體旋轉(zhuǎn)\計(jì)算機(jī)圖形學(xué)立方體旋轉(zhuǎn)?更新版\sphere\Debug\sphere.pch
?????文件?????377856??2009-04-10?22:56??立方體旋轉(zhuǎn)\計(jì)算機(jī)圖形學(xué)立方體旋轉(zhuǎn)?更新版\sphere\Debug\sphere.pdb
?????文件??????33792??2009-04-10?22:56??立方體旋轉(zhuǎn)\計(jì)算機(jī)圖形學(xué)立方體旋轉(zhuǎn)?更新版\sphere\Debug\vc60.idb
?????文件??????45056??2009-04-10?22:56??立方體旋轉(zhuǎn)\計(jì)算機(jī)圖形學(xué)立方體旋轉(zhuǎn)?更新版\sphere\Debug\vc60.pdb
?????文件???????6209??2009-04-10?22:56??立方體旋轉(zhuǎn)\計(jì)算機(jī)圖形學(xué)立方體旋轉(zhuǎn)?更新版\sphere\sphere.cpp
?????文件???????4284??2009-04-10?23:07??立方體旋轉(zhuǎn)\計(jì)算機(jī)圖形學(xué)立方體旋轉(zhuǎn)?更新版\sphere\sphere.dsp
?????文件????????520??2009-04-10?22:56??立方體旋轉(zhuǎn)\計(jì)算機(jī)圖形學(xué)立方體旋轉(zhuǎn)?更新版\sphere\sphere.dsw
?????文件??????33792??2009-04-10?23:07??立方體旋轉(zhuǎn)\計(jì)算機(jī)圖形學(xué)立方體旋轉(zhuǎn)?更新版\sphere\sphere.ncb
?????文件??????48640??2009-04-10?23:07??立方體旋轉(zhuǎn)\計(jì)算機(jī)圖形學(xué)立方體旋轉(zhuǎn)?更新版\sphere\sphere.opt
?????文件????????888??2009-04-10?22:56??立方體旋轉(zhuǎn)\計(jì)算機(jī)圖形學(xué)立方體旋轉(zhuǎn)?更新版\sphere\sphere.plg
?????文件??????50118??2004-11-30?03:27??立方體旋轉(zhuǎn)\計(jì)算機(jī)圖形學(xué)立方體旋轉(zhuǎn)?更新版\使用說明.CHM
?????文件??????34962??2009-03-31?23:35??立方體旋轉(zhuǎn)\計(jì)算機(jī)圖形學(xué)立方體旋轉(zhuǎn)?更新版\立方體旋轉(zhuǎn)\Debug\DrawDlg.obj
?????文件??????????0??2009-03-31?23:35??立方體旋轉(zhuǎn)\計(jì)算機(jī)圖形學(xué)立方體旋轉(zhuǎn)?更新版\立方體旋轉(zhuǎn)\Debug\DrawDlg.sbr
?????文件????3138560??2009-03-31?23:35??立方體旋轉(zhuǎn)\計(jì)算機(jī)圖形學(xué)立方體旋轉(zhuǎn)?更新版\立方體旋轉(zhuǎn)\Debug\iu.bsc
?????文件?????122880??2009-05-08?23:10??立方體旋轉(zhuǎn)\計(jì)算機(jī)圖形學(xué)立方體旋轉(zhuǎn)?更新版\立方體旋轉(zhuǎn)\Debug\iu.exe
?????文件?????225212??2009-03-31?23:35??立方體旋轉(zhuǎn)\計(jì)算機(jī)圖形學(xué)立方體旋轉(zhuǎn)?更新版\立方體旋轉(zhuǎn)\Debug\iu.ilk
?????文件??????13572??2009-03-31?23:35??立方體旋轉(zhuǎn)\計(jì)算機(jī)圖形學(xué)立方體旋轉(zhuǎn)?更新版\立方體旋轉(zhuǎn)\Debug\iu.obj
?????文件????6870840??2009-03-31?23:35??立方體旋轉(zhuǎn)\計(jì)算機(jī)圖形學(xué)立方體旋轉(zhuǎn)?更新版\立方體旋轉(zhuǎn)\Debug\iu.pch
?????文件?????295936??2009-03-31?23:35??立方體旋轉(zhuǎn)\計(jì)算機(jī)圖形學(xué)立方體旋轉(zhuǎn)?更新版\立方體旋轉(zhuǎn)\Debug\iu.pdb
?????文件???????2892??2009-03-31?23:35??立方體旋轉(zhuǎn)\計(jì)算機(jī)圖形學(xué)立方體旋轉(zhuǎn)?更新版\立方體旋轉(zhuǎn)\Debug\iu.res
?????文件??????????0??2009-03-31?23:35??立方體旋轉(zhuǎn)\計(jì)算機(jī)圖形學(xué)立方體旋轉(zhuǎn)?更新版\立方體旋轉(zhuǎn)\Debug\iu.sbr
?????文件??????26384??2009-03-31?23:35??立方體旋轉(zhuǎn)\計(jì)算機(jī)圖形學(xué)立方體旋轉(zhuǎn)?更新版\立方體旋轉(zhuǎn)\Debug\iuDlg.obj
?????文件??????????0??2009-03-31?23:35??立方體旋轉(zhuǎn)\計(jì)算機(jī)圖形學(xué)立方體旋轉(zhuǎn)?更新版\立方體旋轉(zhuǎn)\Debug\iuDlg.sbr
?????文件?????106310??2009-03-31?23:35??立方體旋轉(zhuǎn)\計(jì)算機(jī)圖形學(xué)立方體旋轉(zhuǎn)?更新版\立方體旋轉(zhuǎn)\Debug\StdAfx.obj
?????文件????1375172??2009-03-31?23:35??立方體旋轉(zhuǎn)\計(jì)算機(jī)圖形學(xué)立方體旋轉(zhuǎn)?更新版\立方體旋轉(zhuǎn)\Debug\StdAfx.sbr
?????文件?????214016??2009-04-01?00:18??立方體旋轉(zhuǎn)\計(jì)算機(jī)圖形學(xué)立方體旋轉(zhuǎn)?更新版\立方體旋轉(zhuǎn)\Debug\vc60.idb
?????文件?????364544??2009-03-31?23:35??立方體旋轉(zhuǎn)\計(jì)算機(jī)圖形學(xué)立方體旋轉(zhuǎn)?更新版\立方體旋轉(zhuǎn)\Debug\vc60.pdb
............此處省略30個文件信息
評論
共有 條評論