0

一些 sprite 应用程序(即pinchcore)允许您为对象定义一个锚点。

例如,如果一个矩形的锚点是0,0并且它的坐标是x:0,y:0矩形的左上角,那么该矩形的左上角将显示在屏幕的左上角。

但是,如果矩形的锚点是50,50并且它的大小是100x100,则矩形的中间将被放置在0,0并且只显示它的右下部分。

JavaFX中是否有类似的属性?有没有一种简单的方法来实现这一点(你可以将JavaFX 节点xy坐标绑定到它自己的高度和宽度吗?)?

当我将x,y坐标绑定到boundsInLocal/Parent.width我得到一个运行时异常。

4

1 回答 1

2

正如您所说,矩形的原点在左上角。您有 2 个用于定位节点的选项。您可以使用 layoutX 和 layoutY。var rect = 矩形 { layoutX: 50 layoutY: 50 宽度: 100 高度: 100 }

或 translateX 和 translateY

var rect = Rectangle { translateX: 50 translateY: 50 widht: 100 height: 100 } 同时使用 layoutX/Y 和 translateX/Y 的主要目的是 translateX/Y 是可变的,而 layoutX/Y 是初始的定位。例如,您可以在动画中更改 translateX/Y,同时在 layoutX/Y 中记住原始位置。最终位置将始终是 layoutX+ translateX 和 layoutY + translateY。

要将原点移动到中心点 (50,50),请使用负平移。var rect = 矩形 { translateX:-50 translateY:-50 宽度:100 高度:100 }

有些形状不是基于左上角的原点。例如,Circle 使用 centerX 和 centerY。

于 2009-08-25T15:15:30.987 回答