91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 326.19 KB
    文件類型: .rar
    金幣: 1
    下載: 0 次
    發布日期: 2024-10-24
  • 語言: 其他
  • 標簽: OpenGL??讀obj文件??

資源簡介

一個小程序,結合了OpenGL和讀取三維模型文件。先使用SolidWorks建立一個法蘭的模型,保存為obj文件格式,再在C++控制臺程序中讀取其數據,利用OpenGL顯示出來。

資源截圖

代碼片段和文件信息

//?file.cpp?:?定義控制臺應用程序的入口點。
//

#include?“stdafx.h“
#include?“gl\glut.h“
#include?“gl\GLU.h“
#include
#include??
using?std::vector;

GLint?winWidth=600?winHeight=600;

struct??GLpoint
{
GLfloat?x;
GLfloat?y;
GLfloat?z;
};

struct?GLlist
{
GLint?one;
GLint?two;
GLint?three;
};

GLint???vertexCount?faceCount?i;
vector??vertex;
vector??face;

void?readOBJFile(char*?FileName)
{
FILE?*file;
file?=?fopen(FileName?“r“);

vertexCount=faceCount=0;
char??????buf[128];
GLpoint?point={0?0?0};
vertex.push_back(point);

GLlist???faceList;
while(fgets(buf?128?file))
{
if?(buf[0]?==?‘v‘)
{
sscanf(buf?“%*c?%f?%f?%f“?&point.x?&point.y?&point.z);??
vertex.push_back(point);
vertexCount++;
}
else?if?(buf[0]?==?‘f‘)
{
sscanf(buf?“%*c?%d?%d?%d“?&faceList.one?&faceList.two?&faceList.three);
face.push_back(faceList);
faceCount++;
}??
}
//統計頂點數和面數
/*while(fscanf(file?“%s“?buf)?!=?EOF)?
{
switch(buf[0])
{
case?‘#‘: /?*?comment??eat?up?rest?of?line?*?/
fgets(buf?sizeof(buf)?file); break;
case?‘v‘: /?*?v?*?/
if(buf[1]==‘\0‘)
{
fgets(buf?sizeof(buf)?file);
vertexCount++;
}
break;
case?‘f‘: /?*?face?*?/
fscanf(file?“%d“?buf);
fscanf(file?“%d“?buf);
fscanf(file?“%d“?buf);
faceCount++;
break;
default:
/?*?eat?up?rest?of?line?*?/
fgets(buf?sizeof(buf)?file);
break;
}
}
fclose(file);

vertex=new?GLfloat?*[vertexCount+1];
for(i=0;?i vertex[vertexCount]=new?GLfloat?[3];

face??=new?GLint?*[faceCount];
for(i=0;?i face[faceCount]=new?GLint[3];

vertexCount=1; //從1開始
faceCount=0;
file?=?fopen(“DN100法蘭.obj“?“r“);
while(fgets(buf?128?file))?
{
if?(buf[0]?==?‘v‘)
{
sscanf(buf?“%*c?%f?%f?%f“?&vertex[vertexCount][0]?&vertex[vertexCount][1]?&vertex[vertexCount][2]);??????????????????
vertexCount++;
}?
else?if?(buf[0]?==?‘f‘)
{
sscanf(buf?“%*c?%d?%d?%d“?&face[faceCount][0]?&face[faceCount][1]?&face[faceCount][2]);
faceCount++;
}???
}*/
fclose(file);
}

void?init(void)
{
char?*?file=“DN100法蘭.obj“;
readOBJFile(file);
}

void?reshape(int?cx?int?cy)
{
glEnable(GL_DEPTH_TEST);
glClearColor(0.0?0.0?0.0?0);
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);

GLfloat?m_aspect;
if(cy==0)
{
m_aspect=(GLfloat)cx;
}
else
{
m_aspect=(GLfloat)cx/(GLfloat)cy;
}
glViewport(0?0?(GLfloat)cx?(GLfloat)cy);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
/*glOrtho(xwMin?xwMax?ywMin?ywMax?dnear?dfar);?*/??????//正交投影
gluPerspective(50?m_aspect?10?10000); //對稱透視投影
/*glFrustum(xwMin?xwMax?ywMin?ywMax?dnear?dfar); */ //通用透視投影

glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(0?500?0?0?0?0?0?0?1);
}

void

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????1578??2014-01-18?22:56??file\Debug\cl.command.1.tlog

?????文件??????10750??2014-01-18?22:56??file\Debug\CL.read.1.tlog

?????文件???????1128??2014-01-18?22:56??file\Debug\CL.write.1.tlog

?????文件????????406??2014-01-18?14:33??file\Debug\file.exe.embed.manifest

?????文件????????472??2014-01-18?14:33??file\Debug\file.exe.embed.manifest.res

?????文件????????381??2014-01-18?22:56??file\Debug\file.exe.intermediate.manifest

?????文件?????????95??2014-01-18?22:56??file\Debug\file.lastbuildstate

?????文件???????3685??2014-01-18?22:56??file\Debug\file.log

?????文件?????158098??2014-01-18?22:56??file\Debug\file.obj

?????文件????1245184??2014-01-18?14:30??file\Debug\file.pch

?????文件????????198??2014-01-18?14:33??file\Debug\file_manifest.rc

?????文件??????????2??2014-01-18?22:56??file\Debug\link-cvtres.read.1.tlog

?????文件??????????2??2014-01-18?22:56??file\Debug\link-cvtres.write.1.tlog

?????文件??????????2??2014-01-18?22:56??file\Debug\link.1076-cvtres.read.1.tlog

?????文件??????????2??2014-01-18?22:56??file\Debug\link.1076-cvtres.write.1.tlog

?????文件??????????2??2014-01-18?22:56??file\Debug\link.1076.read.1.tlog

?????文件??????????2??2014-01-18?22:56??file\Debug\link.1076.write.1.tlog

?????文件??????????2??2014-01-18?22:56??file\Debug\link.1860-cvtres.read.1.tlog

?????文件??????????2??2014-01-18?22:56??file\Debug\link.1860-cvtres.write.1.tlog

?????文件??????????2??2014-01-18?22:56??file\Debug\link.1860.read.1.tlog

?????文件??????????2??2014-01-18?22:56??file\Debug\link.1860.write.1.tlog

?????文件??????????2??2014-01-18?22:56??file\Debug\link.1964-cvtres.read.1.tlog

?????文件??????????2??2014-01-18?22:56??file\Debug\link.1964-cvtres.write.1.tlog

?????文件??????????2??2014-01-18?22:56??file\Debug\link.1964.read.1.tlog

?????文件??????????2??2014-01-18?22:56??file\Debug\link.1964.write.1.tlog

?????文件??????????2??2014-01-18?22:56??file\Debug\link.2224-cvtres.read.1.tlog

?????文件??????????2??2014-01-18?22:56??file\Debug\link.2224-cvtres.write.1.tlog

?????文件??????????2??2014-01-18?22:56??file\Debug\link.2224.read.1.tlog

?????文件??????????2??2014-01-18?22:56??file\Debug\link.2224.write.1.tlog

?????文件??????????2??2014-01-18?22:56??file\Debug\link.2456-cvtres.read.1.tlog

............此處省略49個文件信息

評論

共有 條評論