• 大小: 2.67MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-11-11
  • 语言: C/C++
  • 标签: OpenGL  

资源简介

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

评论

共有 条评论