个人理财 JavaFX编程示例:3D Box - 虚拟人物

JavaFX编程示例:3D Box - 虚拟人物

目录:

视频: 10.3: An Array of Images - Processing Tutorial 2025

视频: 10.3: An Array of Images - Processing Tutorial 2025
Anonim

JavaFX内置了对逼真3D建模的支持。实际上,JavaFX场景图本质上是三维的。大多数JavaFX程序仅在两个维度上工作,仅指定x坐标和y坐标。但是,要进入第三个维度,您只需指定z坐标即可将场景图的节点放置在三维空间中。 JavaFX包含一组丰富的类,专门用于在3D世界中创建和可视化3D对象。您可以创建三维形状,例如立方体和圆柱体。您可以在三维空间内移动虚拟相机,从不同角度和不同角度查看3D对象。

<! --1 - >

你甚至可以添加光源,仔细控制虚拟世界的最终外观。总之,JavaFX能够产生惊人的3D场景。

在您的Java世界中添加3D框

在此步骤中,将对象添加到3D世界中:在这种情况下,框由Box类表示。这是代码:

Box box = new Box(100,100,100);框。 setMaterial(blueStuff);框。 setTranslateX(150);框。 setTranslateY(-100);框。 setTranslateZ(-100);根。的getChildren()。添加(盒); Box构造函数接受三个代表框的宽度,高度和深度的参数。在这个例子中,所有三个都被设置为100.因此,框将被绘制成一个立方体,每一边测量100个单位。

<! - 2 - >

盒子的材质与圆柱相同。然后,它将在所有三个轴上进行翻译,以便您可以看到该框的透视图。该图显示了该框在呈现时如何显示。正如你所看到的,盒子的左侧和底部是可见的,因为你把盒子的位置向上和向右平移,这样相机就可以获得一些视角。

旋转3D框

在此步骤中,旋转框以创建更有趣的透视图。有两种方法来旋转3D对象。最简单的方法是调用对象的setRotate方法并提供一个旋转角度:

框。 setRotate(25);

默认情况下,这将在z轴上旋转对象。如果难以形象化,可以想象用一根与Z轴平行的长棒来歪斜物体。然后,旋转对象的串。

如果要沿不同的轴旋转对象,首先调用setRotationAxis。例如,要在x轴上旋转对象,请使用以下序列:

框。 setRotationAxis(Rotate。X_AXIS);框。 setRotate(25);

想象一下,将串串通过与x轴平行的串,然后将框旋转25度。

使用setRotate方法旋转3D对象的唯一问题是它一次只能在一个轴上工作。例如,假设您想要在z轴和x轴上旋转方框25度。以下代码将

不是

完成此操作: 框。 setRotationAxis(Rotate。X_AXIS);框。 setRotate(25);框。 setRotationAxis(Rotate。Z_AXIS);框。 setRotate(25); 当第二次调用setRotate方法旋转z轴上的方框时,将重置x轴旋转。

要在多个轴上旋转,您必须使用Rotate类。您可以为要旋转对象的每个轴创建一个单独的Rotate实例,然后通过getTransforms()将所有的Rotate实例添加到对象的Transforms集合中。 addAll方法,如下所示:

旋转rxBox = new旋转(0,0,0,0,Rotate。X_AXIS);旋转ryBox = new旋转(0,0,0,0,Rotate。Y_AXIS);旋转rzBox = new旋转(0,0,0,0,Rotate。Z_AXIS); rxBox。 setAngle(30); ryBox。 setAngle(50); rzBox。 setAngle(30);框。 getTransforms()。 addAll(rxBox,ryBox,rzBox); Rotate构造函数接受四个参数。前三个是旋转轴将通过的对象内点的x,y和z坐标。通常,您可以为这些参数指定零以围绕其中心点旋转对象。第四个参数指定旋转轴。

该图显示了旋转后框出现的方式。

旋转后的盒子。

JavaFX编程示例:3D Box - 虚拟人物

编辑的选择

10个惊人的Python编程资源 - 傻瓜

10个惊人的Python编程资源 - 傻瓜

您可能对Python编程有很好的开始,需要额外的资源。这里有十个令人惊叹的编程资源,您可以使用它来改善您的开发体验。在线使用Python文档使用Python的一个重要部分就是了解Python中的可用内容...

如何在Python中创建类定义

如何在Python中创建类定义

类不需要特别复杂。实际上,您可以在Python中创建容器和一个类元素,并将其称为一个类。当然,最终得到的类不会有太多的工作,但是你可以实例化它(告诉Python用你的类作为蓝图来构建一个对象),并使用它来处理它...

如何在Python中访问列表 - 傻瓜

如何在Python中访问列表 - 傻瓜

使用Python创建列表后,要访问信息它包含。一个对象不是特别有用,如果你至少不能访问它所包含的信息。以下步骤描述了如何做到这一点。

编辑的选择

如何在Excel 2013中复制自定义样式 - 傻瓜

如何在Excel 2013中复制自定义样式 - 傻瓜

Excel 2013可以轻松复制自定义单元样式您已经将其作为一个工作簿的一部分保存到您当前正在处理的工作簿中。要将自定义样式从一个工作簿复制到另一个工作簿,请按照下列步骤:

如何使用填充柄复制Excel公式 - 虚拟人

如何使用填充柄复制Excel公式 - 虚拟人

您将喜欢填充柄在Excel中。填充句柄是一个快速的方法,只需单击一下鼠标,即可将单元格的内容复制到其他单元格。活动单元格的边界右下方总是有一个小方框。那是填充句柄。当你...

如何比较Excel 2013中的多个工作表 - Excel 2013中的虚拟人数

如何比较Excel 2013中的多个工作表 - Excel 2013中的虚拟人数

,可以拆分单个工作簿到工作表窗口中,然后排列窗口,以便您可以查看屏幕上每个工作表的不同部分。要打开要在不同窗口中比较的工作表,只需插入新的工作簿窗口,然后选择工作表即可...

编辑的选择

监视WebLogic Server - 虚拟机

监视WebLogic Server - 虚拟机

监视服务器是每个WebLogic Server管理员必须处理的重要任务。您将监视您的服务器是否启动以及服务器负载。通过监视,您可以快速查看WebLogic Server不同部分如何执行的概述。通过WebLogic Server,您可以监视以下区域:CORBA ...

测量用于机器学习的矢量之间的相似性 - 虚拟

测量用于机器学习的矢量之间的相似性 - 虚拟

把他们当作一个媒介。以下信息描述了如何测量矢量之间的相似性以执行诸如计算用于学习目的的矢量之间的距离等任务。理解相似性在矢量形式中,您可以在...中看到每个变量。

前10名MATLAB的使用MATLAB

前10名MATLAB的使用MATLAB

MATLAB被许多不同的人使用当谈到数学产品时,可能不一定会想到。事实上,数学的使用方式很多人都没有考虑。工程新的解决方案许多工程学科依靠各种数学来确保...