• 大小: 85KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-10
  • 语言: C/C++
  • 标签: opengl  点云  

资源简介

可以完美实现点云数据的读取和显示,通过MFC和OpenGL实现。还要详细点?我想我表达的已经够清楚了吧

资源截图

代码片段和文件信息

/*
 * This Code Was Created By Pet & Commented/Cleaned Up By Jeff Molofee
 * If You‘ve Found This Code Useful Please Let Me Know.
 * Visit NeHe Productions At http://nehe.gamedev.net
 * Conversion to Visual Studio.NET done by GRANT JAMES(ZEUS)
 */

#include  // Header File For Windows
#include  // Math Library Header File
#include  // Header File For Standard Input/Output
#include  // Header File For The OpenGL32 Library
#include  // Header File For The GLu32 Library

HDC hDC=NULL; // Device Context Handle
HGLRC hRC=NULL; // Rendering Context Handle
HWND hWnd=NULL; // Window Handle
HINSTANCE hInstance; // Instance Handle

bool keys[256]; // Key Array
bool active=TRUE; // Program‘s Active
bool fullscreen=TRUE; // Default Fullscreen To True

GLfloat xrotyrotzrot // X Y & Z Rotation
xspeedyspeedzspeed // X Y & Z Spin Speed
cxcycz=-15; // X Y & Z Position

int key=1; // Used To Make Sure Same Morph Key Is Not Pressed
int step=0steps=200; // Step Counter And Maximum Number Of Steps
bool morph=FALSE; // Default morph To False (Not Morphing)

typedef struct // Structure For 3D Points
{
float x y z; // X Y & Z Points
} VERTEX; // Called VERTEX

typedef struct // Structure For An object
{
 int verts; // Number Of Vertices For The object
 VERTEX *points; // One Vertice (Vertex xy & z)
} object; // Called object

int maxver; // Will Eventually Hold The Maximum Number Of Vertices
object morph1morph2morph3morph4 // Our 4 Morphable objects (morph123 & 4)
helper*sour*dest; // Helper object Source object Destination object

LRESULT CALLBACK WndProc(HWND UINT WPARAM LPARAM); // Declaration

void objallocate(object *kint n) // Allocate Memory For Each object
{ // And Defines points
k->points=(VERTEX*)malloc(sizeof(VERTEX)*n); // Sets points Equal To VERTEX * Number Of Vertices
} // (3 Points For Each Vertice)

void objfree(object *k) // Frees The object (Releasing The Memory)
{
free(k->points); // Frees Points
}

void readstr(FILE *fchar *string) // Reads A String From File (f)
{
do // Do This
{
fgets(string 255 f); // Gets A String Of 255 Chars Max From f (File)
} while ((string[0] == ‘/‘) || (string[0] == ‘\n‘));// Until End Of Line Is Reached
return; // Return
}

void objload(char *nameobject *k) // Loads object From File (name)
{
int ver; // Will Hold Vertice Count
float rxryrz; // Hold Vertex X Y & Z Position
FILE *filein; // Filename To Open
char oneline[255]; // Holds One Line Of Text (255 Chars Max)

filein = fopen(name

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件       13710  2000-08-24 01:02  Data\Sphere.txt
     文件       13875  2000-08-24 01:02  Data\Torus.txt
     文件       14126  2000-08-24 01:02  Data\Tube.txt
     文件       26010  2003-03-17 08:14  Lesson25.cpp
     文件       53248  2002-04-23 18:34  Lesson25.exe
     文件      134144  2003-03-17 08:14  Lesson25.ncb
     文件         916  2003-03-17 08:14  Lesson25.sln
     文件        3954  2003-03-17 08:14  Lesson25.vcproj
     文件         672  2002-04-23 18:33  NeHe‘s Readme.txt

评论

共有 条评论