项目场景:

利用c++编译STL反转法线


问题描述:

STL格式模型如何生成,如何反转法线,反转之后模型有什么变化


原因分析:

可适用于STL文件格式底层学习


解决方案:

#include <iostream>

#include <vector>

#include <fstream>

#include<string>

using namespace std;

int main()

{

ifstream in("F:\\VScunfang\\inlet.stl"); //txt文件与源代码要在一个文件夹内

string filename;

string line;

string temp;

vector<string>  m_vec;

if (in) // 有该文件

{

while (getline(in, line)) // line中不包括每行的换行符

{

m_vec.push_back(line); //读取每一行并保存到容器中

}

//反转法线方向

ofstream ofs;

ofs.open("F:\\VScunfang\\inlet反转法线.stl", ios::out);

//交换坐标并输出

ofs << "solid C47C" << endl;

for (int i = 2; i < m_vec.size(); i = i + 7)

{

ofs << "facet normal 0 0 1" << endl;

temp = m_vec[i+2];

m_vec[i+2] = m_vec[i+3];

m_vec[i+3] = temp;

for (int j= i; j < i+6; j++)

{

ofs << m_vec[j] << "  " << endl;

cout << m_vec[j] << "" << endl;

}

}

ofs << "endsolid C47C" << endl;

}

else // 没有该文件

{

cout << "no such file" << endl;

}

return 0;

}

c++编译STL文件反转其法线相关推荐

  1. stl文件转stp (二次开发)

    前几天有个美女问我stl文件怎么处理,很尴尬我也处理不了,为了避免再次发生这种情况,所以我做了这个小软件.其下载链接将在文末给出.源码我已经上传GitHub,需要的可自取:https://github ...

  2. 如何读取STL文件?

    STL文件有两种文件格式,分别是二进制的stl和Ascii格式的stl.下面将针对这文件的两个格式,用C语言分别写出一段简单的示例代码. 一.读取二进制的STL文件 (1)二进制stl文件的结构 文件 ...

  3. .stl文件载入错误原因分析

    正常的stl文件可以直接用win10自带的混合现实查看器打开预览,如下图 最近用solidworks保存的.stl格式的模型,利用混合现实查看器打开失败 又尝试利用meshlab(崩溃退出)和clou ...

  4. 学习VTK9笔记(三)打开stl文件

    STL格式的文件,是VTK支持的各种类型的文件之一. STL(Stereolithography)文件,有时被称为"标准三角语言"或"标准曲面细分语言",由3D ...

  5. 预编译文件,预编译头文件认识

    一.概念: 1.预编译:就是编译器首先编译某个文件(称为预编译头文件),然后将这个编译结果保存起来,之后如果有其他源文件include了这个"预编译头文件"的时候,则自动从这个编译 ...

  6. python读取.stl文件(以及转换为obj方法)

    目录 .1 文本方式读取 1.2 stl解析 1.3 stl创建 .2 把点转换为.stl .3 stl组装 .4 stl转obj(带f法向量的obj) .5 ply生成 .1 文本方式读取 代码如下 ...

  7. Magics修复STL文件

    Magics RP是比利时Materialise公司开发的.完全针对3D打印工序特征的软件,其目前最新版本为19.01.Magics为处理STL文件提供了理想的.完美的解决方案,具有功能强大.易用.高 ...

  8. QT+OpenGL导入STL文件(二进制/ascll码格式),鼠标交互实现缩放旋转

    碎碎念 由于课设和大创涉及到了模型的旋转,因此专门去学习了模型的导入,也是废了不少心思,现在总结一下两种格式的简单导入,以及对stl模型两种格式的简单介绍.网上有很多大佬都有详细的解答,结尾附上链接: ...

  9. Maven 手动添加第三方依赖包及编译打包和java命令行编译JAVA文件并使用jar命令打包...

    一,实例:新建了一个Maven项目,在eclipse中通过 build path –> configure path-.将依赖包添加到工程中后,eclipse不报错了.但是用Maven命令 mv ...

  10. linux下编译make文件报错“/bin/bash^M: 坏的解释器,使用grep快速定位代码位置

    一.linux下编译make文件报错"/bin/bash^M: 坏的解释器 参考文章:http://blog.csdn.net/liuqiyao_01/article/details/415 ...

最新文章

  1. python量化策略代码_手把手教你用三行python 代码做一个动量策略「量化投资系列」...
  2. github上手实践教程
  3. jstree如何禁止平级拖拽?_小程序为鲜花店经营带来哪些价值?如何搭建一款鲜花小程序?...
  4. Java 为 Excel 中的行设置交替背景色
  5. 《鬼泣V》:旧时代的标杆在新时代的窘境
  6. 实验四Java_《Java实验四》
  7. Spring Boot(一) 建立spring boot工程
  8. 机器学习的参数正则化
  9. Android 12 重磅亮相!阔别 2 年的 Google I/O 开发者大会回来了
  10. 从0到1简易区块链开发手册V0.6-实现打印区块
  11. 26.Linux/Unix 系统编程手册(上) -- 监控子进程
  12. VS连接VSS代码管理器失败问题
  13. windows下安装wget
  14. 【ppt课件制作】Focusky教程 | 如何设置内容全屏显示?
  15. cad缩放_CAD软件中的CAD图纸界限是什么?
  16. maven多模块编译子包
  17. linux运维排查常用命令(开发专享)
  18. 卡马克揭开VR延迟背后的真相
  19. 【毕业设计项目】基于ESP32的家庭气象站系统 - stm32 物联网 嵌入式 单片机
  20. 【unity学习笔记】OnMouseEnter、OnMouseOver、OnMouseExit

热门文章

  1. 客户消费积分管理系统的设计与实现
  2. 淘客该怎么做,淘客+又是什么
  3. 3.操作系统有五大功能
  4. 云计算--VMware私有云平台搭建
  5. css3加号图标_css实现“加号”效果的实例代码
  6. Ceres-Solver安装与简介
  7. Ceres Solver:从入门到使用
  8. 2018年上半年阅读总结(系统架构师)
  9. 无心剑中译泰戈尔《漂鸟集(1~10)》
  10. linux man shell,Linux Shell man 命令详细介绍