c++编译STL文件反转其法线
项目场景:
利用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文件反转其法线相关推荐
- stl文件转stp (二次开发)
前几天有个美女问我stl文件怎么处理,很尴尬我也处理不了,为了避免再次发生这种情况,所以我做了这个小软件.其下载链接将在文末给出.源码我已经上传GitHub,需要的可自取:https://github ...
- 如何读取STL文件?
STL文件有两种文件格式,分别是二进制的stl和Ascii格式的stl.下面将针对这文件的两个格式,用C语言分别写出一段简单的示例代码. 一.读取二进制的STL文件 (1)二进制stl文件的结构 文件 ...
- .stl文件载入错误原因分析
正常的stl文件可以直接用win10自带的混合现实查看器打开预览,如下图 最近用solidworks保存的.stl格式的模型,利用混合现实查看器打开失败 又尝试利用meshlab(崩溃退出)和clou ...
- 学习VTK9笔记(三)打开stl文件
STL格式的文件,是VTK支持的各种类型的文件之一. STL(Stereolithography)文件,有时被称为"标准三角语言"或"标准曲面细分语言",由3D ...
- 预编译文件,预编译头文件认识
一.概念: 1.预编译:就是编译器首先编译某个文件(称为预编译头文件),然后将这个编译结果保存起来,之后如果有其他源文件include了这个"预编译头文件"的时候,则自动从这个编译 ...
- python读取.stl文件(以及转换为obj方法)
目录 .1 文本方式读取 1.2 stl解析 1.3 stl创建 .2 把点转换为.stl .3 stl组装 .4 stl转obj(带f法向量的obj) .5 ply生成 .1 文本方式读取 代码如下 ...
- Magics修复STL文件
Magics RP是比利时Materialise公司开发的.完全针对3D打印工序特征的软件,其目前最新版本为19.01.Magics为处理STL文件提供了理想的.完美的解决方案,具有功能强大.易用.高 ...
- QT+OpenGL导入STL文件(二进制/ascll码格式),鼠标交互实现缩放旋转
碎碎念 由于课设和大创涉及到了模型的旋转,因此专门去学习了模型的导入,也是废了不少心思,现在总结一下两种格式的简单导入,以及对stl模型两种格式的简单介绍.网上有很多大佬都有详细的解答,结尾附上链接: ...
- Maven 手动添加第三方依赖包及编译打包和java命令行编译JAVA文件并使用jar命令打包...
一,实例:新建了一个Maven项目,在eclipse中通过 build path –> configure path-.将依赖包添加到工程中后,eclipse不报错了.但是用Maven命令 mv ...
- linux下编译make文件报错“/bin/bash^M: 坏的解释器,使用grep快速定位代码位置
一.linux下编译make文件报错"/bin/bash^M: 坏的解释器 参考文章:http://blog.csdn.net/liuqiyao_01/article/details/415 ...
最新文章
- python量化策略代码_手把手教你用三行python 代码做一个动量策略「量化投资系列」...
- github上手实践教程
- jstree如何禁止平级拖拽?_小程序为鲜花店经营带来哪些价值?如何搭建一款鲜花小程序?...
- Java 为 Excel 中的行设置交替背景色
- 《鬼泣V》:旧时代的标杆在新时代的窘境
- 实验四Java_《Java实验四》
- Spring Boot(一) 建立spring boot工程
- 机器学习的参数正则化
- Android 12 重磅亮相!阔别 2 年的 Google I/O 开发者大会回来了
- 从0到1简易区块链开发手册V0.6-实现打印区块
- 26.Linux/Unix 系统编程手册(上) -- 监控子进程
- VS连接VSS代码管理器失败问题
- windows下安装wget
- 【ppt课件制作】Focusky教程 | 如何设置内容全屏显示?
- cad缩放_CAD软件中的CAD图纸界限是什么?
- maven多模块编译子包
- linux运维排查常用命令(开发专享)
- 卡马克揭开VR延迟背后的真相
- 【毕业设计项目】基于ESP32的家庭气象站系统 - stm32 物联网 嵌入式 单片机
- 【unity学习笔记】OnMouseEnter、OnMouseOver、OnMouseExit