我能够从.stl文件加载TriangleMesh。我可以画它,一切都很好。然而,当我需要" crop"这个TriangleMesh来自一个形状。我想要一个看起来像这样的方法:
public TriangleMesh cropFrom(Shape shape) {
TriangleMesh croppedTriangleMesh = new TriangleMesh();
for (Point point : currentTriangleMesh.getPoints()) {
if ( shape.contains(point) ) {
// Let the magic happens!
}
}
return croppedTriangleMesh;
}
我知道TriangleMesh适用于点(x,y,z),面和纹理坐标。我不知道如何在给定点的情况下检索相关面和纹理坐标(反之亦然)。我不确切知道如何开始或在哪里看。它似乎不是一个热门话题。
感谢您提前抽出时间和帮助!
答案 0 :(得分:0)
您可能希望查看具有多边形网格的布尔运算。这通常是一项艰难的操作,可以轻松完成,但不能很好地完成,例如以下方法:
或者,有些方法使用多个精确算术并将多边形对象转换为边界平面表示,这些方法较慢且难以实现。
最好使用其中一个库,实现此目的,例如CGAL(其中之一)。