2015-06-03 60 views
0

如果我希望通过置换(10,10)到Node翻译,又是什么在做转换JavaFX中

#1的差异。

myNode.setTranslateX (10); 
myNode.setTranslateY (10); 

,做

#2。

Translate translateNode = new Translate (10,10); 
myNode.getTransforms.add(translateNode); 

回答

0

第一种方法将平移绝对的,无论你的节点所在,在此之后,这将是@ X:10 Y:10。

另一方面,第二种方法尊重节点上的当前转换,eq myNode。所以如果你的节点是@ x:23,y:52它会是33,62。

1

adding a Translatesetting a translate都做同样的事情。唯一需要注意的是,如果您指定both to the same node,则在设置平移/缩放因子之前应用添加的转换。

getTransforms所述的JavaDoc:

变换的这ObservableList被平移X,平移Y,将scaleX和scaleY之前施加,旋转变换。

+0

我不得不旋转关于点(30,20)10度的节点。我必须添加3个转换,一个翻译(30,20)然后旋转10度,然后另一个翻译(-30,-20)。 –

+0

我可以通过Node.TranslateX(),Node.TranslateY()和Node.Rotate()方法来做到这一点吗? –

+0

是(30,20)在你的场景中翻译X和Y值还是X/Y坐标? – ItachiUchiha