Graphics JavaFX节点中x,y的锚点

Graphics JavaFX节点中x,y的锚点,graphics,2d,javafx,Graphics,2d,Javafx,某些sprite应用程序(即)允许您定义对象的定位点 例如,如果矩形的定位点为0,0,其坐标为x:0,y:0,则矩形的左上点将显示在屏幕的左上点 但是,如果矩形的定位点为50,50,且其大小为100x100,则矩形的中间将位于0,0,并且仅显示其右下部分 JavaFX中是否有类似的属性?有没有一种简单的方法来实现这一点(您能将JavaFX节点的x和y坐标绑定到它自己的高度和宽度吗?) 当我将x,y坐标绑定到boundsInLocal/Parent.width时,我得到一个运行时异常。如您所说,矩

某些sprite应用程序(即)允许您定义对象的定位点

例如,如果矩形的定位点为
0,0
,其坐标为
x:0,y:0
,则矩形的左上点将显示在屏幕的左上点

但是,如果矩形的定位点为
50,50
,且其大小为
100x100
,则矩形的中间将位于
0,0
,并且仅显示其右下部分

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


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

如您所说,矩形的原点在左上角。 您有两个用于定位节点的选项。您可以使用layoutX和layoutY。 var rect=矩形{ 布局X:50 布局:50 寡妇:100 身高:100 }

或者translateX和translateY

var rect=矩形{ translateX:50 特兰西:50 寡妇:100 身高:100 } 同时使用layoutX/Y和translateX/Y的主要目的是,translateX/Y用于可变,而layoutX/Y用于初始定位。例如,可以在动画中更改translateX/Y,同时在layoutX/Y中记住原始位置。最终位置始终为layoutX+translateX和layoutY+translateY

要将原点移动到中心点(50,50),请使用负平移。 var rect=矩形{ translateX:-50 特兰西:-50 寡妇:100 身高:100 }


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

不够好。我想将X,Y绑定到当前节点的宽度;或者最好是var rect:Rectangle=Rectangle{layoutX:bind rect.width layoutY:bind rect.height};对不起,我忘记了,x和y已从节点中删除。您必须使用layoutX/Y或translateX/Y。因此,您可以使用矩形{layoutX:bind rect.layoutbunds.width}。