我知道如果我旋转一个扩展javafx.scene.shape.Shape
的对象,我可以将其转换为3D空间,即使它主要设计为2D(至少就我所知)。
假设我有一个3D场景(使用了透视摄像头和深度缓冲器),其中出现了各种MeshView
。有些用于区域,有些用于线路。在这两种情况下,必须对这些形状进行三角测量,以便用TriangleMesh
绘制它们,这通常是非常重要的。
现在当我改变这些线条的绘图以使用Polyline
类时,性能崩溃是可怕的并且有一些奇怪的文物。我认为我可以从这样的事实中受益:折线具有较少的顶点,并且开发人员不必以编程方式进行三角测量。
是否不鼓励在3D空间中使用延伸javafx.scene.shape.Shape
的形状?他们是如何在内部吸引的?
答案 0 :(得分:5)
如果问题是“我应该在3D空间中使用2D Shape对象吗?”在JavaFX中,答案是否定的,因为您将获得所有可怕的性能。然而,听起来您正在尝试弥补JavaFX缺少使用2D对象并在3D空间中旋转它们的3D PolyLine对象。如果这是真的,而是使用免费的开源F(X)yz库:
http://birdasaur.github.io/FXyz/
例如,PolyLine3D类允许您简单地指定Point3D列表,它将为您连接它们:
/src/org/fxyz/shapes/composites/PolyLine3D.java
您可以在测试目录中看到有关如何使用它的示例代码:
/src/org/fxyz/tests/PolyLine3DTest.java