一、开发环境说明
- 操作系统:windows
- 开发软件:Visual Studio 2017
- 编程语言:基于控制台下的opengl
- 用到的库: glut
opengl环境配置查看博客
二、STL文件介绍
2.1 STL的二进制格式
ASCII码格式的STL文件逐行给出三角面片的几何信息,每一行以1个或2个关键字开头。在STL文件中的三角面片的信息单元facet是一个带矢量方向的三角面片,STL三维模型就是由一系列这样的三角面片构成。整个STL文件的首行给出了文件路径及文件名。在一个STL文件中,每一个facet由7行数据组成,facetnormal是三角面片指向实体外部的法矢量坐标,outer loop说明随后的3行数据分别是三角面片的3个顶点坐标,3顶点沿指向实体外部的法矢量方向逆时针排列
ASCII格式的STL文件结构如下
solid finename stl //文件路径及文件名
facet normal x y z //三角片面法向量的3个分量
outer loop
vertex x y z //三角片面第一个顶点的坐标
vertex x y z //三角片面第二个顶点的坐标
vertex x y z //三角片面第三个顶点的坐标
endloop
endfacet //第一个三角面片定义完毕
.........
.........
.........
endsolid filename stl//整个文件结束
2.2 STL文件截图
如果所示,是一个牙齿模型的stl文件
三、代码实现及验证
定义一个类STLModel,用来加载和显示模型