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

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

目录:

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

视频: 10.3: An Array of Images - Processing Tutorial 2024
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 - 虚拟人物

编辑的选择

特权的基础知识在Oracle 12c - 虚拟机

特权的基础知识在Oracle 12c - 虚拟机

用户可以在Oracle 12c数据库中完成。您可能希望允许用户能够登录,但是您可能需要限制用户是否可以执行以下任一任务:访问某些数据开始...

Oracle 12c恢复管理器(RMAN)目录 - 傻瓜

Oracle 12c恢复管理器(RMAN)目录 - 傻瓜

的基础知识Oracle 12c恢复管理器(RMAN)环境,请考虑恢复目录。恢复目录是所有RMAN配置参数,备份操作和元数据的存储库。该目录可以无限期地存储备份信息。如何在Oracle 12c中选择目录模式RMAN提供了两种用于存储备份数据的选项:NOCATALOG ...

如何验证,查看和关闭Oracle 12c审计 - 傻瓜

如何验证,查看和关闭Oracle 12c审计 - 傻瓜

打开数据库中的审计记录,跟踪您制定的审计,以便您了解所做的事情。幸运的是,Oracle 12c在数据库中提供了一些视图来帮助您跟踪自己的操作:要验证您为审计配置的系统特权,请使用视图AUDIT_UNIFIED_POLICIES。要查看...

编辑的选择

Drupal友好的网页寄存公司 - 傻瓜

Drupal友好的网页寄存公司 - 傻瓜

网页寄存公司为您提供访问Web服务器,您可以在其中安装Drupal并使您的网站在Web上可见。一些公司为您安装Drupal或为您提供一键安装,为您节省了一些工作量。如果您决定自己跳过Drupal的安装,请考虑通过以下方式之一获取帐户...

Drupal花园功能 - 傻瓜

Drupal花园功能 - 傻瓜

让您有机会查看和使用所有Drupal花园功能,可以创建一个新的站点,然后选择自定义选项而不是其中一个已安装的模板:确保已经登录,然后单击我的站点链接。这样做打开了Drupal花园站点经理。点击创建...

Drupal园林主题生成器 - 傻瓜

Drupal园林主题生成器 - 傻瓜

Drupal花园设置完成后,有一些乐趣和玩你的网站上的主题。使用Drupal Gardens Theme Builder控制网站的外观是与安装Drupal自身副本不同的主要方式。但是你不会错过太多...

编辑的选择

更改MYOB中的文本和日期 - 虚拟人物

更改MYOB中的文本和日期 - 虚拟人物

MYOB为您提供了许多快捷方式以帮助简化任务。例如,您可以像在任何文字处理器中那样在MYOB中复制和粘贴文本。以下是快捷方式:按键组合快捷键结果Ctrl-A选择所有高亮显示的文本Ctrl-C复制文本Ctrl-V粘贴文本Ctrl-X删除或剪切文本Ctrl-Z取消最后一位...

在Salesforce中创建视图。当您单击Salesforce中的某个选项卡以访问特定对象(例如“帐户”,“联系人”或“个案”)时,您可以在对象主页上找到自己的服务云 - 虚拟

在Salesforce中创建视图。当您单击Salesforce中的某个选项卡以访问特定对象(例如“帐户”,“联系人”或“个案”)时,您可以在对象主页上找到自己的服务云 - 虚拟

主页,如果你选择案例,如图所示)。案例主页。当您点击Salesforce中的一个选项卡以访问特定的对象(例如,帐户,联系人或个案)时,您可以看到一些较大的,勾勒出的最近案例,报告和矩形的矩形。