资源简介
C++利用OpenGL实现三维绘图,包括详细的代码注释
代码片段和文件信息
#include “windows.h“
#include “gl/gl.h“
#include “gl/glaux.h“
#include “gl/glu.h“
#include “math.h“
void myinit()
{
glClearColor(1100);
GLfloat ambient[]={0.50.50.50};
glLightModelfv(GL_LIGHT_MODEL_AMBIENT ambient);
GLfloat mat_ambient[]={0.8f0.8f0.8f1.0f};
GLfloat mat_diffuse[]={0.8f0.0f0.8f1.0f};
GLfloat mat_specular[]={1.0f0.0f1.0f1.0f};
GLfloat mat_shininess[]={50.0f};
GLfloat light_diffuse[]={0.0f0.0f0.5f1.0f};
GLfloat light_position[]={0.0f0.0f1.0f0.0f};
glMaterialfv(GL_FRONT_AND_BACKGL_AMBIENTmat_ambient);
glMaterialfv(GL_FRONT_AND_BACKGL_DIFFUSEmat_diffuse);
glMaterialfv(GL_FRONT_AND_BACKGL_SPECULARmat_specular);
glMaterialfv(GL_FRONT_AND_BACKGL_SHININESSmat_shininess);
glLightfv(GL_LIGHT0 GL_DIFFUSE light_diffuse);
glLightfv(GL_LIGHT0GL_POSITION light_position);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glDepthFunc(GL_LESS);
glEnable(GL_DEPTH_TEST);
}
void CALLBACK display()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
auxSolidSphere(1.0);//绘制半径为1.0的实体球
glFlush(); //强制输出图像
auxSwapBuffers(); //交换绘图缓存
_sleep(100);
}
void CALLBACK Idledisplay()
{
//xy满足x2+y2=0.01。这样可以使物体沿该圆轨 //迹运动。
static float x=-0.1f y=0.0f;
static BOOL mark=TRUE;
static float step=0.01f;
x+=step;
if(x<=.1&&x>=-.1)
{
if(step>0)
y=(float)sqrt(0.01f - x * x);
else
y=-(float)sqrt(0.01f - x * x);
glTranslatef(xy0);
}
else
{
step=0-step;
}
display();
}
void CALLBACK myReshape(GLsizei wGLsizei h)
{
glViewport(00wh);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
if(w<=h)
glOrtho(-3.53.5-3.5*(GLfloat)w/(GLfloat)h 3.5*(GLfloat)w/(GLfloat)h-1010);
else
glOrtho(-3.5*(GLfloat)w/(GLfloat)h3.5* (GLfloat)w/(GLfloat)h-3.53.5-1010);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
void main()
{
auxInitDisplayMode(AUX_DOUBLE|AUX_RGBA);
auxInitPosition(00400400);
auxInitWindow(“ circle “);
myinit();
auxReshapeFunc(myReshape);
auxIdleFunc(Idledisplay);
auxMainLoop(display);
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2012-09-01 20:09 6.5 利用OpenGL实现三维绘图\
目录 0 2001-11-26 13:38 6.5 利用OpenGL实现三维绘图\Debug\
文件 140288 2001-11-27 02:18 6.5 利用OpenGL实现三维绘图\Debug\vc60.idb
文件 77824 2001-11-27 02:18 6.5 利用OpenGL实现三维绘图\Debug\vc60.pdb
文件 225367 2001-11-27 02:18 6.5 利用OpenGL实现三维绘图\Debug\三维绘图.exe
文件 357952 2001-11-27 02:18 6.5 利用OpenGL实现三维绘图\Debug\三维绘图.ilk
文件 18062 2001-11-27 02:18 6.5 利用OpenGL实现三维绘图\Debug\三维绘图.obj
文件 3692672 2001-11-27 02:18 6.5 利用OpenGL实现三维绘图\Debug\三维绘图.pch
文件 517120 2001-11-27 02:18 6.5 利用OpenGL实现三维绘图\Debug\三维绘图.pdb
目录 0 2012-09-01 20:09 6.5 利用OpenGL实现三维绘图\Release\
文件 50176 2012-09-01 20:09 6.5 利用OpenGL实现三维绘图\Release\vc60.idb
文件 69632 2012-09-01 20:09 6.5 利用OpenGL实现三维绘图\Release\三维绘图.exe
文件 4848 2012-09-01 20:09 6.5 利用OpenGL实现三维绘图\Release\三维绘图.obj
文件 3684084 2012-09-01 20:09 6.5 利用OpenGL实现三维绘图\Release\三维绘图.pch
文件 2194 2001-11-19 20:06 6.5 利用OpenGL实现三维绘图\三维绘图.cpp
文件 3551 2001-11-19 20:15 6.5 利用OpenGL实现三维绘图\三维绘图.dsp
文件 541 2001-09-26 15:50 6.5 利用OpenGL实现三维绘图\三维绘图.dsw
文件 69632 2001-11-19 21:15 6.5 利用OpenGL实现三维绘图\三维绘图.exe
文件 41984 2012-09-01 20:09 6.5 利用OpenGL实现三维绘图\三维绘图.ncb
文件 55808 2012-09-01 20:09 6.5 利用OpenGL实现三维绘图\三维绘图.opt
文件 743 2012-09-01 20:09 6.5 利用OpenGL实现三维绘图\三维绘图.plg
相关资源
- 太阳、地球、月亮之间的运动图Open
- MFC 单文档 实现opengl 三维旋转 缩放
- OPENGL的烟花程序(代码)
- MFC+OpenGL三维建模与动画显示
- 基于opengl粒子系统实现喷泉的模拟
- 一个基于openGL的太阳系模型,太阳地
- vc6.0+opengl纯色五角星填充
- vc6.0+opengl动态绘制五角星
- NeHe_OpenGL教程完整版 里面有地址可以
- OpenGL简单——实现立方体贴上不同纹
- MFC实现dem的读取与现实
- VC++ OpenGL三维地形漫游
- OpenGL实现三维地形实时动态显示
- VC++中Opengl实现建筑物虚拟漫游
- OpenGL 建筑物漫游
- 用OpenGL实现球面纹理
- 用opengl做的3D教室漫游程序
- 老何炸飞机源代码
- 《Visual C++ OpenGL DirectX三维动画编程宝
- opengl做的迷宫游戏,基于C++
- opengl实现漫游
- VC++雷达模拟程序
- XYZ和STL文件MFC显示
- 简单的OpenGL 3D场景
- OpenGL开发的二维坦克大战游戏,小时
- 最好的CS游戏opengl、C++实现
- c++基于OpenGL的游戏源代码
- opengl c++读取obj文件
- Nehe的OpenGL教程电子书(chm格式)中文
- 三维建筑物漫游程序 opengl
评论
共有 条评论