JavaFX2D、3D、SVG形状
我有一个关于下图的一般性问题。我对如何使用JavaFX创建这样一个组件感到有点困惑。下面船舶图形的每个部分作为按钮本身也会动态变化为:“尺寸、颜色等” 我不确定这是否可以通过SVG路径或2D对象动态创建,或者最好使用文件2D-3D文件类型,如(“.obj、.stl…等”)。JavaFX2D、3D、SVG形状,java,javafx,fxml,Java,Javafx,Fxml,我有一个关于下图的一般性问题。我对如何使用JavaFX创建这样一个组件感到有点困惑。下面船舶图形的每个部分作为按钮本身也会动态变化为:“尺寸、颜色等” 我不确定这是否可以通过SVG路径或2D对象动态创建,或者最好使用文件2D-3D文件类型,如(“.obj、.stl…等”)。 如果有人曾经遇到过这种情况,欢迎留下答案和意见进行讨论。回答澄清者 当我第一次阅读你的问题时,我认为这是关于在你的问题中挑选或选择图像的一部分,但也许不是,而且只是关于如何表示和绘制对象,而不是与对象的一部分交互。如果不需要
如果有人曾经遇到过这种情况,欢迎留下答案和意见进行讨论。回答澄清者 当我第一次阅读你的问题时,我认为这是关于在你的问题中挑选或选择图像的一部分,但也许不是,而且只是关于如何表示和绘制对象,而不是与对象的一部分交互。如果不需要交互,可以忽略答案的拾取部分,只查看形状表示部分 挑选 有多种方法可以实现所描述的结果。您试图实现的技术术语是“拾取”,但除了拾取之外,还有很多事情可能会影响您表示对象的方式,以及您使用的是2D还是3D系统,甚至JavaFX是否是最适合您的应用程序的框架。你可能需要一个3D系统,或者2D系统在你的情况下就足够了(我不知道) 有关资料:
EventHandler<MouseEvent> moveHandler = new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
PickResult res = event.getPickResult();
// do something with the pick result.
event.consume();
}
}
EventHandler moveHandler=neweventhandler(){
@凌驾
公共无效句柄(MouseeEvent事件){
PickResult res=event.getPickResult();
//对拾取结果执行一些操作。
event.consume();
}
}
那篇采摘的文章用了一个字母。PickResult可以解释二维和三维信息。对于二维信息,通常仅拾取的节点相关。在3D拾取的情况下,它提供额外的信息,例如纹理坐标和拾取的3D面
方便的方法,如设置鼠标点击
通常在2D中,您不需要太多额外的信息,除了已选择的节点之外。在这种情况下,您不需要查询和查看PickResult中的所有信息。您可以使用进行用户交互处理,例如。在所有节点上设置一个单击处理程序,您将能够在单击每个节点时通过其相关的单击处理程序对其进行操作(类似于按钮的功能)
对于不规则形状,您可能希望确保您具有。另外请注意,如果“边界拾取”为false,并且希望在不规则形状内单击以注册,则形状的内部必须填充颜色(与图片中不同)。如有必要,颜色可以是半透明的,但不能完全透明。这是因为如果你没有任何东西可以点击,点击将不会注册
悬停绑定
有关在节点的悬停属性更改状态时采取操作的示例,请参见smurf对此问题的回答
- 二维图像的集合
- 二维图像的集合
图像
s,该文件具有透明背景,允许不规则形状
旁白
这个问题可能会因为不够集中而结束,因为这正是像这样的问题所发生的。同样,这个答案在范围上更为一般,而不是具体,特别是,它没有为您提供完整的代码(或者实际上根本没有任何代码)来实现您在问题中概述的问题的解决方案。检查了一种技术。