基于glut,读取点云文件 并进行绘制 包括用鼠标加键盘进行旋转、缩放、平移操作
使用VS2012编写
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 127488 2015-08-05 09:24 glDrawPointCloudDebugglDrawPointCloud.exe
文件 1131 2015-08-05 09:23 glDrawPointCloudDebugglDrawPointCloud.exp
文件 775852 2015-08-05 09:24 glDrawPointCloudDebugglDrawPointCloud.ilk
文件 2466 2015-08-05 09:23 glDrawPointCloudDebugglDrawPointCloud.lib
文件 1362944 2015-08-05 09:24 glDrawPointCloudDebugglDrawPointCloud.pdb
文件 1155165 2015-07-08 11:39 glDrawPointCloudDebug
abbit.txt
文件 3607 2015-08-05 09:28 glDrawPointCloudglDrawPointCloudglDrawPointCloud.vcxproj
文件 11864 2015-08-05 11:22 glDrawPointCloudglDrawPointCloudmain.cpp
文件 37683200 2015-08-05 11:23 glDrawPointCloudglDrawPointCloud.sdf
文件 915 2015-08-03 15:00 glDrawPointCloudglDrawPointCloud.sln
..A..H. 37376 2015-08-05 11:23 glDrawPointCloudglDrawPointCloud.v11.suo
文件 22528 2015-08-05 11:23 glDrawPointCloudReleaseglDrawPointCloud.exe
文件 1133 2015-08-05 11:23 glDrawPointCloudReleaseglDrawPointCloud.exp
文件 2466 2015-08-05 11:23 glDrawPointCloudReleaseglDrawPointCloud.lib
文件 625664 2015-08-05 11:23 glDrawPointCloudReleaseglDrawPointCloud.pdb
目录 0 2015-08-05 11:24 glDrawPointCloudDebug
目录 0 2015-08-05 11:23 glDrawPointCloudglDrawPointCloud
目录 0 2015-08-05 11:24 glDrawPointCloudRelease
目录 0 2015-08-05 11:23 glDrawPointCloud
----------- --------- ---------- ----- ----
41813799 19
// OpenglDrawPoints.cpp : Defines the entry point for the console application.
//
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
typedef struct tagPoint3D
{
GLfloat x;
GLfloat y;
GLfloat z;
}Point3D;
const float PI = 3.141592543f;
std::vector vec_pts;
GLfloat eyeZ;
GLfloat centerX centerY centerZ;
GLfloat fWidth fHeight;
GLfloat halfWidth halfHeight;
GLfloat translateX translateY;
GLfloat rotX rotY;
GLfloat downPtX downPtY;
bool leftBtnDown; GLfloat tempEyeZ;
GLuint arb;
GLuint pt3DNum;
PFNGLGENBUFFERSARBPROC glGenBuffersARB = 0;
PFNGLBINDBUFFERARBPROC glBindBufferARB = 0;
PFNGLBUFFERDATAARBPROC glBufferDataARB = 0;
PFNGLDELETEBUFFERSARBPROC glDeleteBuffersARB = 0;
bool readFile()
{
string filePath;
cout << “input the poing cloud file: “ << endl;
cin >> filePath;
if (-1 == filePath.find(‘\‘))
{
char path[256];
GetModuleFileName(NULL path 256);
int length = strlen(path);
char* temp = path + length;
while (temp[0] != ‘\‘)
{
temp--;
}
temp[0] = 0;
filePath.insert(0 “\“);
filePath.insert(0 path);
filePath += “.txt“;
//ifstream in(strcat(path “\PointsXYZ_201506151741.txt“));
}
ifstream in(filePath.c_str());
if (!in)
{
printf(“读取文件失败!“);
return false;
}
//FILE* file = fopen(filePath.c_str() “r“);
//if (file == NULL)
//{
// printf(“读取文件失败!“);
// return false;
//}
char buf[80];
float a b c;
float minX = 0.0f maxX = 0.0f minY = 0.0f maxY = 0.0f minZ = 0.0f maxZ = 0.0f;
int index = 0;
while (!in.eof())
//while (!feof(file))
{
//fscanf(file “%f %f %f“ &a &b &c);
in.getline(buf 80 ‘
‘);
sscanf(buf “%f %f %f“ &a &b &c);
Point3D pt;
pt.x = a;
pt.y = b;
pt.z = c;
if(eyeZ eyeZ=fabs(pt.z);
if (pt.x < minX)
minX = pt.x;
if (pt.x > maxX)
maxX = pt.x;
if (pt.y < minY)
minY = pt.y;
if (pt.y > maxY)
maxY = pt.y;
//if (pt.z < minZ)
// minZ = pt.z;
//if (pt.z > maxZ)
// maxZ = pt.z;
//minX += pt.x;
//minY += pt.y;
minZ += pt.z;
vec_pts.push_back(pt);
index = 0;
}
in.close();
//fclose(file);
centerX = (maxX + minX)/2;
centerY = (maxY + minY)/2;
//centerZ = (maxZ + minZ)/2;
//centerX = minX/vec_pts.size();
//centerY = minY/vec_pts.size();
centerZ = minZ/vec_pts.size();
halfWidth = fabs(maxX) > fabs(minX) ? fabs(maxX) : fabs(minX);
halfHeight = fabs(maxY) > fabs(minY) ? fabs(maxY) : fabs(minY);
pt3DNum = vec_pts.size();
Point3D* pData = new Point3D[pt3DNum];
for (int i=0; i {
pData[i].x = vec_pts[i].x;
pData[i].y = vec_pts[i].y;
pData[i].z = vec_pts[i].z;
}
glGenBuffersARB = (PFNGLGENBUFFERSARBPROC)wglGetProcAddress(“glGenBuffersARB“);
glB
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 127488 2015-08-05 09:24 glDrawPointCloudDebugglDrawPointCloud.exe
文件 1131 2015-08-05 09:23 glDrawPointCloudDebugglDrawPointCloud.exp
文件 775852 2015-08-05 09:24 glDrawPointCloudDebugglDrawPointCloud.ilk
文件 2466 2015-08-05 09:23 glDrawPointCloudDebugglDrawPointCloud.lib
文件 1362944 2015-08-05 09:24 glDrawPointCloudDebugglDrawPointCloud.pdb
文件 1155165 2015-07-08 11:39 glDrawPointCloudDebug
abbit.txt
文件 3607 2015-08-05 09:28 glDrawPointCloudglDrawPointCloudglDrawPointCloud.vcxproj
文件 11864 2015-08-05 11:22 glDrawPointCloudglDrawPointCloudmain.cpp
文件 37683200 2015-08-05 11:23 glDrawPointCloudglDrawPointCloud.sdf
文件 915 2015-08-03 15:00 glDrawPointCloudglDrawPointCloud.sln
..A..H. 37376 2015-08-05 11:23 glDrawPointCloudglDrawPointCloud.v11.suo
文件 22528 2015-08-05 11:23 glDrawPointCloudReleaseglDrawPointCloud.exe
文件 1133 2015-08-05 11:23 glDrawPointCloudReleaseglDrawPointCloud.exp
文件 2466 2015-08-05 11:23 glDrawPointCloudReleaseglDrawPointCloud.lib
文件 625664 2015-08-05 11:23 glDrawPointCloudReleaseglDrawPointCloud.pdb
目录 0 2015-08-05 11:24 glDrawPointCloudDebug
目录 0 2015-08-05 11:23 glDrawPointCloudglDrawPointCloud
目录 0 2015-08-05 11:24 glDrawPointCloudRelease
目录 0 2015-08-05 11:23 glDrawPointCloud
----------- --------- ---------- ----- ----
41813799 19
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)