资源简介
一个用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安装库glutgltoolsglewfreeglut
- Opengl程序 时钟制作
- OpenGL环境下贴图法画树代码
- OpenGL环境配置文件
- openGL构造教室.docx
- 第一人称3D射击游戏源代码OpenGL
- 实现鼠标点击图形填充
- glfw-3.3.zip
- OpenGL所有库OpenGL,freeglut、glu、glut、
- opengl实现光线跟踪算法
- OpenGL编程指南第九版红宝书
- 三维迷宫游戏源代码及可执行文件
- OpenGL_读取PLY文件+光照
- 研究生计算机图形学课件OpenGL
- OPENGL扫描线填充算法
- OpenGL ES 3.x游戏开发 上卷 吴亚峰.pdf
- 用OpenGL绘制的二维动物
- opengl编写3D的CS小游戏,可运行
- 基于opengl的粒子系统
- 利用OpenGL自编程实现球体源码——网
- OpenGL Development Cookbook PDF + vs2015源碼
- OpenGL.Superbible.7th.Edition(pdfandsourceco
- OpenGL着色语言(中文版
- OpenGL编程指南第九版英文
- 计算机图形学OpenGL第三版带完整目录
- 一个用 opengl 开发的雪花动画
- Computer Graphics Using OpenGL (3rd Edition)
- opengl导入3ds模型和场景漫游
- OpenCV实现SfM:双目三维重建
- OpenGL显示任意Stl文件
评论
共有 条评论