JavaFX官方教程(九)之转换

JavaFX转型深入解析
本文详细介绍了JavaFX中的转换功能,包括翻译、旋转、缩放和剪切等类型。转换可应用于独立节点或节点组,JavaFX支持2D和3D转换,并利用仿射变换进行坐标映射。Z缓冲用于3D效果,确保透视正确。建议初学者通过实践和API文档了解转换的使用。

翻译自  Transformations Overview

本章介绍JavaFX中支持的转换。

所有转换都位于javafx.scene.transform包中,并且是类的子Transform类。

介绍转换

变换根据某些参数改变坐标系中图形对象的位置。JavaFX支持以下类型的转换:

  • 翻译

  • 回转

  • 缩放

  • 剪毛

这些转换可以应用于独立节点或节点组。您可以一次应用一个转换,也可以组合转换并将多个转换应用于一个节点。

Transform类实现仿射变换的概念。本Affine类扩展Transform类,并作为一个超类中的所有转换。仿射变换基于欧几里德代数,并执行从初始坐标到其他坐标的线性映射(通过使用矩阵),同时保持线的直线度和平行度。可以使用observableArrayLists旋转,平移,比例和剪切来构造仿射变换。

注意:

通常,不要Affine直接使用该类,而是使用特定的“平移”,“缩放”,“旋转”或“剪切”转换。

JavaFX中的变换可以沿三个坐标执行,从而使用户能够创建三维(3-D)对象和效果。为了管理具有3-D图形深度的对象的显示,JavaFX实现了z缓冲。Z缓冲确保虚拟世界中的透视与真实透视相同:前景中的实体对象阻挡其后面的视图。可以使用setDepthTest该类启用Z缓冲。您可以尝试setDepthTest(DepthTest.DISABLE在示例应用程序中禁用z-buffering())以查看z-buffer的效果。

为了简化转换使用,JavaFX使用x轴和y轴以及x,y和z轴实现转换构造函数。如果要创建二维(2-D)效果,则只能指定x和y坐标。如果要创建三维效果,请指定所有三个坐标。

为了能够在JavaFX中查看三维对象和转换效果,用户必须启用透视摄像头。

虽然了解基础概念可以帮助您更有效地使用JavaFX,但您可以通过研究本文档提供的示例并尝试不同的转换参数来开始使用转换。有关特定类,方法或其他功能的更多信息,请参阅API文档。

在本文档中,使用木琴应用程序作为示例来说明所有可用的转换。您可以通过单击transformations.zip链接下载其源代码。

图1-1木琴应用程序

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值