zoukankan      html  css  js  c++  java
  • C++ STL自学总结,仅供参考

    本文内容,为博主在网上看到资料总结整合而来

    一、stl格式简介

         .stl文件是在计算机图形应用系统,来表示封闭的面或者体,用来表示三角形网格的一种文件格式。为STereo Lithography的缩写,由3D Systems公司于1987年开发而来,利用三角片离散近似表示三维模型,近年来已经成为快速原型技术领域广泛应用的文件格式和接口标准。

         一个stl文件坐标必须是正数,没有比例信息,单位是任意的。

    二、stl文件格式

         stl文件分为ASCII明码格式和二进制格式。

         ASCII格式的stl结构如下:

     1 solid filename.stl//文件路径及文件名字
     2 facet normal  x  y  x//三角片的外法向量
     3  vertex x y z//第一个顶点
     4  vertex x y z//第二个顶点
     5  vertex x y z//第三个顶点
     6  end loop
     7  endfacet
     8  .
     9  .
    10  .
    11  endsolid

        

        上图为我运行生成的stl文件的一个片段例子

        一个三角片包含三角片的外法向量和按右手螺旋规则排列的三个顶点。

        因为ASCII格式可能非常大,所以便存在了二进制的格式

        二进制格式的stl结构如下:

       

    1 UINT8//文件头
    2 UINT32//三角片数量
    3 foreach triangle
    4 REAL32[3]//法线矢量
    5 REAL32[3]//顶点一
    6 REAL32[3]//顶点二 
    7 REAL32[3]//顶点三
    8 UINT16//文件属性统计
    9 end

    三、.stl文件导出及显示工具

        这里我利用vtk来写.stl文件,再利用MeshLab来打开文件进行显示

        导出代码如下: 

     1 // VTK
     2 ......
     3 #include"vtkSTLWriter.h"
     4 
     5 int main(int argc, char *argv[])
     6  {//argc表示传入main函数的参数个数;argv0表示程序的名称,并且包含了程雪所在的完整路径
     7 
     8             .......
     9         vtkSTLWriter *writer = vtkSTLWriter::New();//Stereo lithography files only contain triangles. If polygons with more than 3 vertices are present, only the first 3 vertices are written.
    10         writer->SetInputConnection(skinStripper->GetOutputPort());
    11         writer->SetFileName("D:/DATAOUT/poly2procs.stl");
    12         writer->Update();
    13         writer->Write();
    14         
    15         system("pause");
    16 
    17         return 0;
    18 }
  • 相关阅读:
    5月,专用程序猿的经典大作——APUE
    [Android]Can't create handler inside thread that has not called Looper.prepare()
    HDU 4433 locker 2012 Asia Tianjin Regional Contest 减少国家DP
    mac 下有些工具 app 推荐
    机器学习倚门回首嗅青梅
    Android复制iPhone日期和时间选择器
    更新代码和工具,组织起来,提供所有博文(C++,2014.09)
    poj3349
    web项目启动,运行方法
    jstat
  • 原文地址:https://www.cnblogs.com/bxyan/p/6613093.html
Copyright © 2011-2022 走看看