本项目为一款适用于Android设备的应用程序源码,旨在通过手机或平板电脑直观地浏览和展示STL格式的三维模型文件。用户可以轻松查看3D打印模型的设计细节,进行旋转、缩放等操作以获得最佳视角,使设计审查更加便捷高效。
在去年的一个关于3D打印的项目里使用了STL文件解析技术。最近有空闲时间,我制作了一个展示STL文件格式的演示程序(demo)。非常感谢GitHub上的另一个分享者提供的STLViewer项目,该项目是基于该代码进行了修改和优化,并修复了一些问题如显示卡顿、不完整以及绘制三角形时法线的问题等;同时增加了屏幕适配矫正功能。此项目支持两种STL文件格式:ASCII格式与二进制格式。
**STL 文件简介**
- **ASCII 格式**
ASCII码的STL文件逐行给出每个三角面片的信息,每一行以一个或两个关键字开头。
在整个 STL 文件中,首个信息单元是“solid filename”,表示了该文件的位置与名称。在每一个包含7行数据的facet(即三角形)里,“facet normal”代表的是指向实体外部方向的法向量坐标值;而“outer loop”则指明接下来三行为构成此面片三个顶点的具体位置信息,且这三点需按逆时针顺序排列以符合该向外的方向。
ASCII格式下的STL 文件结构如下:
```
solid filename
facet normal nx ny nz
outer loop
vertex v1x v1y v1z
vertex v2x v2y v2z
vertex v3x v3y v3z
endloop
endfacet
```