我在JavaFX 8中构建了一个可以在屏幕上旋转和移动TriangleMesh对象的应用程序。我使用来自www.interactivemesh.org的库来读取STL文件并创建TriangleMesh对象。

当我将TriangleMesh对象写回到STL时,将保存原始数据。 JavaFX不会更改原始数据。我记录了一个吉拉,他们说这应该是这样工作的。

保存时如何变换网格数据?我希望有一个跨平台库,该库可以转换可轻松与JavaFX 8集成的网格。

我找到了hg.postspectacular.com/toxiclibs/wiki/Home。他们开发了自己的TriangleMesh和其他对象。如果所有其他方法都失败了,我可能会编写一个转换器,将JavaFX TriangleMesh转换为它们的转换器,然后使用它们的转换来转换数据,以便将其保存到STL。我不确定他们是否实际更改了数据,以便我可以实际使用它

我还看到我可能需要看一下JOGL(用于OpenGL的Java绑定)。

最佳答案

请参阅javafx.scene.Node的javadoc:

转换Node.getLocalToSceneTransform()

“仿射变换保存已计算的局部到场景变换。这是此节点的父级和此节点中所有变换的串联,包括所有便利变换。”

请参阅javafx.scene.transform.Transform的javadoc:

Point3D变换(Point3D点)

“通过此变换来变换指定的点。”


从TriangleMesh的Shape3D节点获取“ LocalToSceneTransform”
将变换方法应用于每个三角形的三个Point3D
通过翻转y和z值,将Point3D从JavaFX 3D坐标系转换为STL之一
使用经过转换和转换的三个Point3D来计算面/三角形法线

10-07 12:44
查看更多