如何使用其中一个contructor参数中包含的数学模式中的变量“t”。 “t”对应于使图表向右移动的时间。
public void update(final Scene scene) {
final Group root = (Group) scene.getRoot();
final Chart chart = new Chart(x -> Math.exp(-(Math.pow((x-t ), 2)))
* Math.cos((2*Math.PI*(x-t))/l),
-1, 1, 0.01,
new Axes(1000, 1000, -1, 1, 0.1, -1, 1, 0.1)
);
root.getChildren().add(chart);
Timeline timeLine = new Timeline(Timeline.INDEFINITE,
new KeyFrame(new Duration(1000),
x -> {}));
timeLine.setAutoReverse(true);
timeLine.play();
}
如果我可以在KeyFrame
内执行此操作,则可以解决我的问题。但不能。
while(t < 1) {
t+=0.05;
chart = new Chart(x -> Math.exp(-(Math.pow((x-t ),2)))*Math.cos((2*Math.PI*(x-t))/l),
-1, 1, 0.01, new Axes(1000, 1000,
-1, 1, 0.1, -1, 1, 0.1)
);
}
答案 0 :(得分:0)
您可以在lambda表达式中访问的唯一局部变量是window2
或有效的最终变量。自final
被修改(t
)以来,它既不是最终的,也不是最终的。
您只需将其值复制到最终变量:
t+=0.05