java - 在 JavaFX 中旋转和移动 TriangleMesh。保存时如何转换数据?

标签 java rotation javafx transform mesh

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

当我将 TriangleMesh 对象写回 STL 时,原始数据将被保存。 JavaFX 不会更改原始数据。我登录了 jira,他们说这就是它应该如何工作的。

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

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

我还发现我可能需要查看 JOGL(OpenGL 的 Java 绑定(bind))。

最佳答案

请参阅 javafx.scene.Node 的 javadoc:

变换 Node.getLocalToSceneTransform()

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

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

Point3D变换(Point3D点)

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

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

关于java - 在 JavaFX 中旋转和移动 TriangleMesh。保存时如何转换数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20993026/

相关文章:

java - Spymemcached 和连接失败

java - 打印java中所有异常位置

java - OCR AWS Textract 服务无法区分上标/指数

android - 如何在 Activity 中使用 Retrofit 和 RxJava/RxAndroid 处理旋转?

ios - 使用 CADisplayLink 的 UIImageView 旋转动画 - 跟踪旋转

javascript - 围绕不断变化的原点旋转 - Javascript

java - 使用 JavaFX 14 和 FXML 文件构建独立 JAR

JavaFX Accordion 设置下一个扩展 Pane

java - 如何在 JavaFX 2.2 中获取固定鼠标光标的场景坐标?

java - Azure 的 Key Vault 是否支持 PGP key 加密?