DOC-02-07 选取(Picking)

本章描述在JavaFX 3D图形特性中的PickResult API。

PickResult API对于带有透视摄像头(Perspective Camera)的2D图元(Primitives)已经是可用的了。然而,由于当它与深度缓存(Depth Buffer)共用时存在限制,PickResult类已经被添加到了javafx.scene.input包之中。它是一个容器对象,其中包含了选取事件的结果对象。

PickResult参数已经被添加到MouseEvent,MouseDragEvent, DragEvent, GestureEvent, ContextMenuEvent 以及 TouchPoint类的所有构造方法之中,因此用户的选取信息可以被返回。在这些类中新加入的getPickResult()方法返回了一个新的PickResult对象,它包含了选取动作的信息。另一个新加入的方法是getZ(),它返回了相对于MouseEvent的源位置的深度。

创建一个PickResult对象

为了在应用程序中创建一个新的PickResult对象实例,JavaFX API提供了3个构造方法,如例7-1所示。

例7-1 PickReuslt的构造方法

PickResult对象的方法

一旦你在代码中创建了一个PickResult对象,你就可以使用下面的方法来对事件处理类所传递过来的信息进行处理。

7–2 PickResult 的方法

使用PickResult的样例

例7-3展示了如何使用PickResult对象和方法。PickMesh3DSample样例程序中的代码片段展示了在一个PickResult对象中获得信息。下载名为PickMesh3DSample.zip的 NetBeans工程文件并且运行样例。当你的鼠标移过网格时,鼠标位置的信息会被显示到叠加层之上。你可以按下”L”键来在Fill和Line模式之间切换绘图模式,这样可以看到构成网格的每一面。

7–3 使用PickResult的样例代码

打赏一下
支付宝
微信
除非注明,博客文章均为原创,转载请标明文章地址
本文地址: http://www.javafxchina.net/blog/2015/08/graphics_picking/
百度已收录