关键词不能为空

当前您在: 主页 > 英语 >

STL文件的读取显示

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-01 21:36
tags:

-

2021年2月1日发(作者:长官)




基于


VC++



OpenGL


STL


文件读取


显示














基于< /p>


VC++



OpenGL



STL


文件读取显示



摘要:


STL


是三维模型常用的文件格式。 对


STL


文件进行读取和显示,是对模型


进行后续操作的前提。在对


STL


文件格式进行详细分析的基 础上,以


VC+-I-


作为


开发平台;


利用


C++


标准


lO


库的


ifstream


类型定义 对象并绑定


STL


文件;


再用标准



string


类型中的

< br>getline


逐行读取绑定的


STL

< br>文件;


最后,


应用


OpenGL


中绘制三


角面片编程技术实现对


STL


文件格式的直观显示。通过试验验证了读取和显示效


果。



关键词



STL


文件


ASCII


三维模型



三角面片


OpenGL


1


引言



STL(Stereo lit hographic)


文件格式是美国


3DSYSTEMS


公司提出的三维实体


造型系统的一个接口标准,其接口格式规范。目 前已被工业界认为是快速成形


(rapid


prototypi


ng)


领域的标 准描述文件格式。在逆向工程、有限元分析、医


学成像系统、文物保护等方面有广泛的应 用川。对


STL


文件的读取与显示是其应


用的基础与前提,本文对


STL


文件特点进行了详细的分析并 在


VC++


平台上。利用


C++


标准库中提供的文件流读取及字符操作等功能结合


OpenGL


中三角面片绘制的


编程技术实现了对


STL< /p>


文件的读取与显示。



2 STL


文件格式的结构



为了正确地读 取三维模型原始数据。


更好地利用三维图形的知识重现三维模


型 原型,首先必须充分了解三维模型原始数据文件的格式,理解三维数据内部


< p>
的组织结构。


STL


文件是一种用许多空间小三角 形面片逼近三维实体表面的数据


模型,


STL

< br>模型的数据通过给出组成三角形法向量的


3


个分量


(


用于确定三角面片


的正反方向


)


及三角形的


3


个顶点坐标 来实现,一个完整的


STL


文件记载了组成实

< br>体模型的所有三角形面片的法向量数据和顶点坐标数据信息。目前的


STL


文件格


式包括二进制文件


(BINARY)< /p>


和文本文件


(ASCIi)


两种。



2.1 TL


的二进制格式



二进制

< p>
STL


文件用固定的字节数来给出三角面片的几何信息。文件起始的


80


个字节是文件头,用于存贮零件名;紧接着用

4


个字节的整数来描述模型的三角


面片个数,


后面逐个给出每个三角面片的几何信息。


每个三角面片占用固定的

< p>
50


个字节,


依次是


3< /p>



4


字节浮点数


(


角面片的法矢量


)3



4


字节浮点数


(1


个顶点的 坐



)3



4


字节浮点数


(2


个顶点的坐标


)3



4


字节浮点数< /p>


(3


个顶点的坐标


)

个三角面


片的最后


2


个字节用来描 述三角面片的属性信息。


一个完整二进制


STL


文件的大小


为三角形面片数乘以


50

< br>再加上


84


个字节,总共


1 34


个字节。



2.2 TL



ASCII


文件格式



ASCII


码格式的


STL

< p>
文件逐行给出三角面片的几何信息,


每一行以


1< /p>


个或


2


个关


键字 开头。



STL


文件中的三角面片的信 息单元


facet


是一个带矢量方向的三角面

< br>片,


STL


三维模型就是由一系列这样的三角面片构成。


整个


STL


文件的首行给出了


文件路径及文件名。


在一个


STL


文件中,


每一个


facet



7


行数据组成,


facetnorm al


是三角面片指向实体外部的法矢量坐标,


outer lo op


说明随后的


3


行数据分别是


三角面片的


3


个顶点坐标,

< br>3


顶点沿指向实体外部的法矢量方向逆时针排列。



ASCII


格式的


STL

< br>文件结构如下:



solid filename stl


//文件路径及文件名



facet normal X Y z


//三角面片法向量的


3


个分量值



outer loop


vertex X Y z


//三角面片第一个顶点坐标



vertex X Y Z


//三角面片第二个顶点坐标



vertex X Y Z


//三角面片第三个顶点坐标



end loop


end facet


//完成一个三角面片定义



end solid filename stl


//整个


STL


文件定义结束一个具体


STL


文件如下:



solid C


:\

Temp



NOEL Parts



HMJ



PRT


STL


created by Ctrl View V2



70


facet normal 0 1 0


outer loop


vertex 67



4752 34



7981 31



693


vertex 68



4358 34



7981 30



3941


vertex 69



1 631 34



7981 28



951 6


end loop


end facet


通过对


STL< /p>


两种文件格式的分析可知,二进制格式文件较小


(


通常是


ASC


¨码


格式的


1



5)



节省文件存储空间,



ASCII

< p>
码格式的文件可读性更强,


更容易进


行进一步的数 据处理。



3 STL


文件的读取与显示



本文以


STL


三维模型文件为数据源,


根据对文件 格式和内部数据结构的分析,


采用


OpenGL


作为三维图形接口,并以


VC++6



O


为开发平台。利用


C++


标 准


IO


库的


if stream


类型定义对象并绑定


STL


文件:再用标准库


string


类型中的


getline



行读取绑定的


STL


文件:然后对读入的数据进行是否为顶点信息的判断,存储其


中的顶点数据。再 应用


OpenGL


编程技术实现对


ST L


三维模型文件的显示。



读取


STL


文件时,只需要读取


STL

< p>
文件中表示向量和三角形顶点的相应数据,


不需要读文件中的其它信息。依 次按逆时针方向读入各个三角形面片的


3


顶点坐


标值。由于三角面片外法矢量可以通过右手螺旋法则由


3


顶点坐标值计算出来,


因此可不对其进行存储,以节省存储空间。如果后续处理需用到 法矢量,



可利用以下的外法矢量计算公式:




(1)


3.1


定义顶点。



STL

< br>三维模型文件由一系列的三角面片组成,每一个三角面片由三维空间中


对应的三个 顶点组成。


STL


文件的读取与显示实质就是对


STL


文件中的顶点信息进


行读取并直观显示,


因此,


读取显示


STL


文件首先要解决的就是顶点的定义问题,


本文通过类


Vert ex


定义三角面片顶点,


Vertex


类定义的部分代码如下:



class Vertex


{


public



Verte


×


(double


—< /p>


x=0



double

< br>—


y=O



double

-


-


-


-


-


-


-


-



本文更新与2021-02-01 21:36,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/595249.html

STL文件的读取显示的相关文章

  • 余华爱情经典语录,余华爱情句子

    余华的经典语录——余华《第七天》40、我不怕死,一点都不怕,只怕再也不能看见你——余华《第七天》4可是我再也没遇到一个像福贵这样令我难忘的人了,对自己的经历如此清楚,

    语文
  • 心情低落的图片压抑,心情低落的图片发朋友圈

    心情压抑的图片(心太累没人理解的说说带图片)1、有时候很想找个人倾诉一下,却又不知从何说起,最终是什么也不说,只想快点睡过去,告诉自己,明天就好了。有时候,突然会觉得

    语文
  • 经典古训100句图片大全,古训名言警句

    古代经典励志名言100句译:好的药物味苦但对治病有利;忠言劝诫的话听起来不顺耳却对人的行为有利。3良言一句三冬暖,恶语伤人六月寒。喷泉的高度不会超过它的源头;一个人的事

    语文
  • 关于青春奋斗的名人名言鲁迅,关于青年奋斗的名言鲁迅

    鲁迅名言名句大全励志1、世上本没有路,走的人多了自然便成了路。下面是我整理的鲁迅先生的名言名句大全,希望对你有所帮助!当生存时,还是将遭践踏,将遭删刈,直至于死亡而

    语文
  • 三国群英单机版手游礼包码,三国群英手机单机版攻略

    三国群英传7五神兽洞有什么用那是多一个武将技能。青龙飞升召唤出东方的守护兽,神兽之一的青龙。玄武怒流召唤出北方的守护兽,神兽之一的玄武。白虎傲啸召唤出西方的守护兽,

    语文
  • 不收费的情感挽回专家电话,情感挽回免费咨询

    免费的情感挽回机构(揭秘情感挽回机构骗局)1、牛牛(化名)向上海市公安局金山分局报案,称自己为了挽回与女友的感情,被一家名为“实花教育咨询”的情感咨询机构诈骗4万余元。

    语文