资源简介
想在三维模型网格上做点研究,没想到catiaproductpart文件转换成stl格式后就是一个个三角片,估计可以增加个忽悠点哈哈~~

代码片段和文件信息
//#include
#include
#include
#include
#include
#include
#include
#include
#define PI 3.1415926
int winWidthwinHeight;
float lastPos[3]={0.0F0.0F0.0F};
float angle=0axis[3]trans[3];
bool trackballMove=false;
bool perspectiveXform = false;
GLfloat objectXform[4][4] = { {1.0 0.0 0.0 0.0} {0.0 1.0 0.0 0.0} {0.0 0.0 1.0 0.0} {0.0 0.0 0.0 1.0} };
GLfloat *trackballXform = (GLfloat*)objectXform;
float distance=0;
bool lineAAEnabled = true;
bool line=1;
struct vertex{
vertex(void):x(0)y(0)z(0){};
vertex(float xfloat yfloat z)
{
this->x=x;
this->y=y;
this->z=z;
}
float xyz;
inline vertex operator =(const vertex &v)
{
this->x=v.x;
this->y=v.y;
this->z=v.z;
return *this;
}
inline vertex operator +(vertex &v)
{
vertex result;
result.x=this->x+v.x;
result.y=this->y+v.y;
result.z=this->z+v.z;
return result;
}
inline vertex operator -(vertex &v)
{
vertex result;
result.x=this->x-v.x;
result.y=this->y-v.y;
result.z=this->z-v.z;
return result;
}
inline vertex operator /(float f)
{
vertex result;
result.x=this->x/f;
result.y=this->y/f;
result.z=this->z/f;
return result;
}
inline vertex operator -()
{
this->x=-this->x;
this->y=-this->y;
this->z=-this->z;
return *this;
}
};
vertex normalize(vertex v)
{
vertex result;
float norm=sqrt(v.x*v.x+v.y*v.y+v.z*v.z);
result.x=v.x/norm;
result.y=v.y/norm;
result.z=v.z/norm;
return result;
}
struct face{
vertex verts[3];
vertex normal;
inline face operator=(const face &f)
{
this->verts[0]=f.verts[0];
this->verts[1]=f.verts[1];
this->verts[2]=f.verts[2];
this->normal=f.normal;
return *this;
}
};
struct mesh{
std::vector faces;
};
mesh Mesh;
vertex center;
float radius;
void fileread(char *filename)
{
FILE *file;
float xyz;
char str[100];
char buf[999];
if(!(file=fopen(filename“r“)))exit(1);
while (fscanf(file“%s“buf)!=EOF)
{
switch (buf[0])
{
case ‘s‘://solid CATIA STL
case ‘o‘://outer loop
case ‘e‘://endloop or endfacet or endsolid C...
fgets(bufsizeof(buf)file);
break;
case ‘f‘://facet normal ...!
{
fscanf(file“%s“str);
fscanf(file“%f %f %f“&x&y&z);
face temp;
temp.normal.x=x;
temp.normal.y=y;
temp.normal.z=z;
fgets(bufsizeof(buf)file);//...might be ‘\0‘
fgets(bufsizeof(buf)file);//skip “outer loop“
for(int k=0;k<3;k++)
{
float xxyyzz;
fscanf(file“%s“str);//skip “vertex“
fscanf(file“%f %f %f“&xx&yy&zz);
temp.verts[k].x=xx;
temp.verts[k].y=yy;
temp.verts[k].z=zz;
}
Mesh.faces.push_back(temp);
break;
}
default:
fgets(buf sizeof(buf) file);
break;
}
}
fclose(file);
}
void unitize(vertex ¢erfloat &radius)
{
vertex maxmi
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 96627 2011-03-15 09:15 stlreader\stlreader\4-10.stl
文件 7853 2011-03-15 09:17 stlreader\stlreader\4-24d.stl
文件 11028 2011-03-15 09:26 stlreader\stlreader\Debug\BuildLog.htm
文件 178670 2011-03-15 09:26 stlreader\stlreader\Debug\main.obj
文件 65 2011-03-15 09:26 stlreader\stlreader\Debug\mt.dep
文件 385 2011-03-15 09:26 stlreader\stlreader\Debug\stlreader.exe.intermediate.manifest
文件 191488 2011-03-15 09:26 stlreader\stlreader\Debug\vc80.idb
文件 208896 2011-03-15 09:26 stlreader\stlreader\Debug\vc80.pdb
文件 288121 2011-03-14 16:21 stlreader\stlreader\Exercise02.stl
文件 8403 2011-03-15 09:26 stlreader\stlreader\main.cpp
文件 940300 2011-03-12 11:11 stlreader\stlreader\sd_500__sweep_line_tan_sur_exercise10b.stl
文件 3696 2011-03-13 00:04 stlreader\stlreader\stlreader.vcproj
文件 1417 2011-03-15 09:27 stlreader\stlreader\stlreader.vcproj.Oscarhx-PC.Oscarhx.user
文件 1417 2011-03-14 00:23 stlreader\stlreader\stlreader.vcproj.TOSHIBA-PC.TOSHIBA.user
文件 892 2011-03-12 15:03 stlreader\stlreader.sln
..A..H. 24576 2011-03-15 09:27 stlreader\stlreader.suo
目录 0 2011-03-15 09:26 stlreader\stlreader\Debug
目录 0 2011-03-15 09:26 stlreader\stlreader
目录 0 2011-03-15 10:41 stlreader
----------- --------- ---------- ----- ----
1963834 19
- 上一篇:实验室安全考试系统题库整合
- 下一篇:Qt编写的速度仪表盘
相关资源
- OpenGL参考手册
- SPD博士V5.3.exe
- IAR For ARM V5.5 注册机
- TI CCS V5.4 安装步骤及破解文件
- Qt Creator opengl实现四元数鼠标控制轨迹
- OpenGL文档,api大全,可直接查询函数
- opengl轮廓字体源代码
- 串口调试助手V5.0
- MFC读三维模型obj文件
- 利用OpenGL写毛笔字算法
- MFC中OpenGL面和体的绘制以及动画效果
- 基于OPENGL的光线跟踪源代码368758
- VC 实现三维旋转(源码)
- 自编用openGL实现3D分形树,分形山
- OpenGL球形贴图自旋程序
- OpenGL导入贴图的Texture类
- 计算机图形学(openGL)代码
- 用OpenGL开发的机械臂运动仿真程序(
- OpenGL-3D坦克模拟
- TSUMV56RBET液晶电视芯片介绍
- Navicat Keygen Patch v5.6.0 DFoX
- OPENGL实现世界上最小的3D游戏
- STEP7 V5.5授权软件
- VS2012OpenGL配置所需要的全部libdllh文件
- CCleaner Pro v5.06.5219中文版(集成注册码
- TeeChart Pro ActiveX V5
- BOSON模拟器NetSim V5.31破解版附注册机
- broadcom 802.11g 网络适配器驱动程序 v
- 机器学习个人笔记完整版v5.2-A4打印版
- ibmx3650m4阵列卡驱动 v5.2.127 免费版
评论
共有 条评论