【发布时间】:2010-01-18 03:37:29
【问题描述】:
我正在尝试计算在 STL 文件中定义的对象的质心 (x,y,z) 坐标(立体光刻,不要与标准模板库混淆)。 STL 文件包含一个由三角形组成的边界定义的封闭对象(或多个对象)。三角形本身不一定按任何顺序,文件只是浮动在 3D 空间中的每个三角形的坐标 3 个顶点加上三角形的法线向量(法线应该被忽略,因为它并不总是正确完成)。没有任何东西可以将每个三角形相互联系起来,假设对象是闭合的。
一种简单的方法是将一个体积(在本例中为一个盒子)划分为数百万个元素,并确定每个元素是否在 STL 文件中定义的对象内,然后总结矩并计算中心质量。这会起作用,但它远非优雅且极其缓慢。
另一种方法是将边界表示转换为多个填充四面体实体。我可以计算每个四面体的质心、它的体积和产生的力矩的形式,从而从所有四面体的总和中计算出总质心。问题在于我不知道如何将三角形的表面表示转换为四面体的体积表示(我假设它是一项相当重要的任务)。
有没有人知道任何方法或想出我可以尝试的任何方法?或者甚至可能有任何关于这个的参考资料?
有关 STL 文件的更多信息(只有前 2 部分很重要,其他部分无用):http://en.wikipedia.org/wiki/STL_%28file_format%29
【问题讨论】: