资源简介
一个用OpenGL实现的立体旋转球,帮助学习OpenGL的用户快速学习,提供一个简单的例子供参考。

代码片段和文件信息
#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 立方体旋转\计算机图形学立方体旋转 更新版\sphere\Debug\sphere.exe
文件 245008 2009-04-10 22:56 立方体旋转\计算机图形学立方体旋转 更新版\sphere\Debug\sphere.ilk
文件 26581 2009-04-10 22:56 立方体旋转\计算机图形学立方体旋转 更新版\sphere\Debug\sphere.obj
文件 349352 2009-04-10 22:56 立方体旋转\计算机图形学立方体旋转 更新版\sphere\Debug\sphere.pch
文件 377856 2009-04-10 22:56 立方体旋转\计算机图形学立方体旋转 更新版\sphere\Debug\sphere.pdb
文件 33792 2009-04-10 22:56 立方体旋转\计算机图形学立方体旋转 更新版\sphere\Debug\vc60.idb
文件 45056 2009-04-10 22:56 立方体旋转\计算机图形学立方体旋转 更新版\sphere\Debug\vc60.pdb
文件 6209 2009-04-10 22:56 立方体旋转\计算机图形学立方体旋转 更新版\sphere\sphere.cpp
文件 4284 2009-04-10 23:07 立方体旋转\计算机图形学立方体旋转 更新版\sphere\sphere.dsp
文件 520 2009-04-10 22:56 立方体旋转\计算机图形学立方体旋转 更新版\sphere\sphere.dsw
文件 33792 2009-04-10 23:07 立方体旋转\计算机图形学立方体旋转 更新版\sphere\sphere.ncb
文件 48640 2009-04-10 23:07 立方体旋转\计算机图形学立方体旋转 更新版\sphere\sphere.opt
文件 888 2009-04-10 22:56 立方体旋转\计算机图形学立方体旋转 更新版\sphere\sphere.plg
文件 50118 2004-11-30 03:27 立方体旋转\计算机图形学立方体旋转 更新版\使用说明.CHM
文件 34962 2009-03-31 23:35 立方体旋转\计算机图形学立方体旋转 更新版\立方体旋转\Debug\DrawDlg.obj
文件 0 2009-03-31 23:35 立方体旋转\计算机图形学立方体旋转 更新版\立方体旋转\Debug\DrawDlg.sbr
文件 3138560 2009-03-31 23:35 立方体旋转\计算机图形学立方体旋转 更新版\立方体旋转\Debug\iu.bsc
文件 122880 2009-05-08 23:10 立方体旋转\计算机图形学立方体旋转 更新版\立方体旋转\Debug\iu.exe
文件 225212 2009-03-31 23:35 立方体旋转\计算机图形学立方体旋转 更新版\立方体旋转\Debug\iu.ilk
文件 13572 2009-03-31 23:35 立方体旋转\计算机图形学立方体旋转 更新版\立方体旋转\Debug\iu.obj
文件 6870840 2009-03-31 23:35 立方体旋转\计算机图形学立方体旋转 更新版\立方体旋转\Debug\iu.pch
文件 295936 2009-03-31 23:35 立方体旋转\计算机图形学立方体旋转 更新版\立方体旋转\Debug\iu.pdb
文件 2892 2009-03-31 23:35 立方体旋转\计算机图形学立方体旋转 更新版\立方体旋转\Debug\iu.res
文件 0 2009-03-31 23:35 立方体旋转\计算机图形学立方体旋转 更新版\立方体旋转\Debug\iu.sbr
文件 26384 2009-03-31 23:35 立方体旋转\计算机图形学立方体旋转 更新版\立方体旋转\Debug\iuDlg.obj
文件 0 2009-03-31 23:35 立方体旋转\计算机图形学立方体旋转 更新版\立方体旋转\Debug\iuDlg.sbr
文件 106310 2009-03-31 23:35 立方体旋转\计算机图形学立方体旋转 更新版\立方体旋转\Debug\StdAfx.obj
文件 1375172 2009-03-31 23:35 立方体旋转\计算机图形学立方体旋转 更新版\立方体旋转\Debug\StdAfx.sbr
文件 214016 2009-04-01 00:18 立方体旋转\计算机图形学立方体旋转 更新版\立方体旋转\Debug\vc60.idb
文件 364544 2009-03-31 23:35 立方体旋转\计算机图形学立方体旋转 更新版\立方体旋转\Debug\vc60.pdb
............此处省略30个文件信息
相关资源
- OpenGL参考手册
- Qt Creator opengl实现四元数鼠标控制轨迹
- OpenGL文档,api大全,可直接查询函数
- opengl轮廓字体源代码
- MFC读三维模型obj文件
- 利用OpenGL写毛笔字算法
- MFC中OpenGL面和体的绘制以及动画效果
- 基于OPENGL的光线跟踪源代码368758
- VC 实现三维旋转(源码)
- 自编用openGL实现3D分形树,分形山
- OpenGL球形贴图自旋程序
- OpenGL导入贴图的Texture类
- 计算机图形学(openGL)代码
- 用OpenGL开发的机械臂运动仿真程序(
- OpenGL-3D坦克模拟
- OPENGL实现世界上最小的3D游戏
- VS2012OpenGL配置所需要的全部libdllh文件
- 基于OpenGL的仿蝗虫机器人三维动态仿
- 图形学 - OpenGL实现3种三维茶壶显示源
- opengl程序-会跳舞的骷髅
- opengl实现三维网格光顺Laplacian算法
- opengl——爆炸
- OpenGL三维地形建模
- opengl游戏编程徐明亮版(含源码)
- 用OPENGL画的一个简单的直升飞机
- opengl完美天空盒
- 3D绘图程序设计:使用Direct3D 10/9和Ope
- OpenGL绘制可运动自行车源程序.zip
- OpenGL实现飘动效果
- opengl室内场景的绘制,包括碰撞检测
评论
共有 条评论