资源简介
利用OpenGL实现了三维点云的显示,添加了鼠标控制事件,可以用鼠标对三维点云模型进行移动、缩放等功能。很不错的源代码,本代码运行环境是VS2010,需要添加OpenGL的配置。很不错的源代码分享给大家。
代码片段和文件信息
// 999.cpp : Defines the entry point for the console application.
//
#include “stdafx.h“
#include
#include /* For “exit“ prototype */
#include /* Header File For The GLUT Library */
/* ASCII code for the escape key. */
#define ESCAPE 27
GLint window; /* The number of our GLUT window */
GLint Xsize=480;
GLint Ysize=640;
GLfloat xs=1.0ys=1.0zs=1.0; /* scale */
GLfloat xr=0.0yr=0.0zr=0.0;
bool mouseLeftDown = false;
bool mouseRightDown = false;
float mouseX = 0 mouseY = 0;
float cameraDistance = -3.0;
float cameraAngleX = 0;
float cameraAngleY = 0;
/* Simple window transformation routine */
GLvoid Transform(GLfloat Width GLfloat Height)
{
glViewport(0 0 Width Height); /* Set the viewport */
glMatrixMode(GL_PROJECTION); /* Select the projection matrix */
glLoadIdentity(); /* Reset The Projection Matrix */
gluPerspective(45.0Width/Height0.1100.0); /* Calculate The Aspect Ratio Of The Window */
glMatrixMode(GL_MODELVIEW); /* Switch back to the modelview matrix */
}
/* A general OpenGL initialization function. Sets all of the initial parameters. */
GLvoid InitGL(GLfloat Width GLfloat Height)
{
glClearColor(0.0 0.0 0.0 0.0); /* This Will Clear The Background Color To Black */
glShadeModel(GL_SMOOTH);
Transform( Width Height ); /* Perform the transformation */
}
/* The function called when our window is resized */
GLvoid ReSizeGLScene(GLint Width GLint Height)
{
if (Height==0) Height=1; /* Sanity checks */
if (Width==0) Width=1;
Transform( Width Height ); /* Perform the transformation */
}
/* The main drawing function
In here we put all the OpenGL and calls to routines which manipulate
the OpenGL state and environment.
This is the function which will be called when a “redisplay“ is requested.
*/
GLvoid DrawGLScene()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); /* Clear The Screen And The Depth Buffer */
glPushMatrix(); //把矩阵压入栈中保存起来,留着以后再用
glLoadIdentity(); //把矩阵堆栈中的在栈顶的那个矩阵置为单位矩阵,好让之前的任何变换都不影响后面的变化
// glTranslatef(0.00.00.0); //下面物体将在(x0.0f0.0f)的位置绘制
// glRotatef(xr1.00.00.0); //沿x0.0f0.0f的y轴旋转45度 从 坐标(0,0,0)即原点,引出一条线到(100)用右手握住这条线,
//这时,你会问,如何握?右手大拇指指向 (0,0,0)至(1,0,0)的方向 才握。另外四个手指的弯曲指向 即是物体旋转方向。
glTranslatef(0 0 cameraDistance);
glRotatef(cameraAngleX 1 0 0);
glRotatef(cameraAngleY 0 1 0);
glScalef(xsyszs); //xsyszs分别为模型在xyz轴方向的缩放比。
// glBegin(GL_QUADS);
glBegin(GL_POLYGON);
glColor3f(1.01.00.0);
glVertex3f( 1.0 1.0 1.0);
glColor3f(1.00.00.0);
glVertex3f(-1.0 1.0 1.0);
glColor3f(1.01.00.0);
glVertex3f(-1.0-1.0 1.0);
glColor3f(1.00.00.0);
glVertex3f( 1.0-1.0 1.0);
glEnd();
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2016-05-20 19:29 OpenGL 3D显示\
目录 0 2016-05-20 19:28 OpenGL 3D显示\999\
文件 25317376 2016-05-03 12:12 OpenGL 3D显示\999.sdf
文件 876 2016-04-20 09:27 OpenGL 3D显示\999.sln
文件 12288 2016-05-03 12:12 OpenGL 3D显示\999.suo
文件 6493 2016-05-03 09:17 OpenGL 3D显示\999\999.cpp
文件 4360 2016-04-20 09:27 OpenGL 3D显示\999\999.vcxproj
文件 1327 2016-04-20 09:27 OpenGL 3D显示\999\999.vcxproj.filters
文件 143 2016-04-20 09:27 OpenGL 3D显示\999\999.vcxproj.user
目录 0 2016-05-20 19:27 OpenGL 3D显示\999\Debug\
文件 406 2016-04-20 09:35 OpenGL 3D显示\999\Debug\999.exe.em
文件 472 2016-04-20 09:35 OpenGL 3D显示\999\Debug\999.exe.em
文件 381 2016-04-20 11:11 OpenGL 3D显示\999\Debug\999.exe.intermediate.manifest
文件 47 2016-04-20 11:11 OpenGL 3D显示\999\Debug\999.lastbuildstate
文件 2509 2016-04-20 11:11 OpenGL 3D显示\999\Debug\999.log
文件 17308 2016-04-20 11:11 OpenGL 3D显示\999\Debug\999.obj
文件 1179648 2016-04-20 09:35 OpenGL 3D显示\999\Debug\999.pch
文件 0 2016-04-20 09:35 OpenGL 3D显示\999\Debug\999.write.1.tlog
文件 196 2016-04-20 09:35 OpenGL 3D显示\999\Debug\999_manifest.rc
文件 1754 2016-04-20 11:11 OpenGL 3D显示\999\Debug\cl.command.1.tlog
文件 3288 2016-04-20 11:11 OpenGL 3D显示\999\Debug\CL.read.1.tlog
文件 548 2016-04-20 11:11 OpenGL 3D显示\999\Debug\CL.write.1.tlog
文件 2 2016-04-20 11:11 OpenGL 3D显示\999\Debug\li
文件 2 2016-04-20 11:11 OpenGL 3D显示\999\Debug\li
文件 2 2016-04-20 11:11 OpenGL 3D显示\999\Debug\li
文件 2 2016-04-20 11:11 OpenGL 3D显示\999\Debug\li
文件 2 2016-04-20 11:11 OpenGL 3D显示\999\Debug\li
文件 2 2016-04-20 11:11 OpenGL 3D显示\999\Debug\li
文件 2228 2016-04-20 11:11 OpenGL 3D显示\999\Debug\li
文件 5624 2016-04-20 11:11 OpenGL 3D显示\999\Debug\li
文件 610 2016-04-20 11:11 OpenGL 3D显示\999\Debug\li
............此处省略52个文件信息
- 上一篇:引体向上计数测试软件.rar
- 下一篇:张雄的《无网格方法》
相关资源
- Delaunay德罗内三角形剖分生成以及op
- OpenGL模型及场景展示源码
- 三十多个天空盒图片
- 最简单的视音频播放 1.1
- 最简单的视音频播放
- glut库源码
- openGl绘制带颜色的三角形
- OpenGl三维建模源代码
- OpenGL函数与范例解析手册(中文).
- OpenGL三维图形系统开发与实用技术
- OpenGL超级宝典第六版 英文
- OpenGL消隐和光照
- opengl写的一个自行车
- OpenTK 安装文件
- opengl2048游戏源码
- OpenGL程序绘制贝塞尔曲线
- Learning Game Physics with Bullet Physics and
- 交通自动化控制界面 - 智能交通灯演
- OpenGLTexture
- OpenGLPro12
- openGL写的飞机动态射击模型
- 太阳系仿真源代码,opengl模型太阳系
- OpenGL 的 glut glaux
- 计算机图形学课程设计--OpenGL--太阳、
- Windows SDK 环境下 OpenGL实现
- OPenGL实现的虚拟校园环境漫游系统
- OpenGL函数与范例解析手册(中文)带
- Qt Creator中的3D绘图及动画教程(参照
- OpenGL依赖库
- 用VC和opengl开发的模仿cs的小游戏
评论
共有 条评论