首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从csv生成stl网格

从csv生成stl网格
EN

Stack Overflow用户
提问于 2017-07-28 03:49:37
回答 1查看 3.8K关注 0票数 1

我有一个csv文件,编码9000x5000分辨率的大坝照片的海拔数据,我想生成一个stl文件,我可以打印在我的3d打印机。csv有3个参数:XYZ,其中X & Y表示照片上的像素位置,Z表示Pixel (X,Y)的地形高度。我想要一个三维文件的照片问题,与角落,裂缝,和山丘所表示的海拔数据。我试图使用Python numpy-stl来完成这个任务,但是我意识到我对stl文件还不太了解,无法完成打印工作。关于如何制作此文件或stl文件如何编码信息的任何信息都将非常有用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-15 16:19:44

你拥有的是一个顶点的集合。然而,STL编码的是一个三角形列表。所以你需要做的是构造连接你的顶点的三角形网格。我假设您希望自己编写代码,我将为您提供一些关于如何进行编码的提示。

首先,你应该找出你的观点是否是结构化的。所谓结构化,我的意思是点的x坐标和y坐标形成一个规则的网格(当数据是从机载扫描中获得时,通常是这样的)。

如果点是结构化的

如果点是结构化的,那么您就有相当大的机会自己构建网格。表示P(i,j)点(Xi,Yj,Zi,j),即第一个坐标是x-坐标列表中的第一个数的点,其第二个坐标是y-坐标列表中的第j个数,其第三个坐标是对应于前两个坐标的z-坐标。图1说明了。

现在你需要决定你的三角形的方向。它们要么是正面的(逆时针方向),要么是负向(顺时针方向).假设您决定负方向,现在可以创建连接点P(i,j)、P(i+1,j)和P(i+1,j+1)的三角形。见图2

在下一步中,您可以创建具有相同方向的相邻三角形,例如P(i,j),P(i+1,j+1),P(i,j+1)。见图3.中较暗的三角形。

对所有合适的i's和j's进行同样的处理,你可以得到所有必要的三角形。

唯一缺失的部分是每个三角形的正常值。这可以按照交叉积中的建议使用这个答案进行计算。

现在,您已经准备好将所有内容写入您的文件。按照维基百科上的描述,对于每个三角形,您将写出它的法线和三个顶点。

如果点不是结构化的

在这种情况下,如果没有对网格划分方法的重要研究(您可能需要了解Delaunay三角剖分),您就没有多少机会创建网格。幸运的是,有一些库可用。例如,Fade2.5D是一个可以帮助您的C++库,它对个人非商业研究是免费的。也许Python也有类似的东西可用。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45364558

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档