JavaFX 2D在3D空间中塑造

时间:2014-05-19 11:56:18

标签: javafx 2d javafx-8 polyline javafx-3d

我知道如果我旋转一个扩展javafx.scene.shape.Shape的对象,我可以将其转换为3D空间,即使它主要设计为2D(至少就我所知)。

假设我有一个3D场景(使用了透视摄像头和深度缓冲器),其中出现了各种MeshView。有些用于区域,有些用于线路。在这两种情况下,必须对这些形状进行三角测量,以便用TriangleMesh绘制它们,这通常是非常重要的。

现在当我改变这些线条的绘图以使用Polyline类时,性能崩溃是可怕的并且有一些奇怪的文物。我认为我可以从这样的事实中受益:折线具有较少的顶点,并且开发人员不必以编程方式进行三角测量。

是否不鼓励在3D空间中使用延伸javafx.scene.shape.Shape的形状?他们是如何在内部吸引的?

1 个答案:

答案 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