提问人:Darina 提问时间:8/6/2023 更新时间:8/6/2023 访问量:138
如何为使用“while”循环计算坐标的对象制作动画?JavaFX的
How to animate objects whose coordinates are calculated using the "while" loop? javafx
问:
我是一名从事数学建模的学生。数学模型(我目前正在研究)的粒子位于圆柱体上。这些粒子的坐标由于彼此之间和表面的相互作用而变化。我需要一步一步地绘制这些粒子的运动。我使用“while”循环来获取每个步骤中粒子的坐标。以下是计算粒子坐标的方法:
public static double[][] Interaction (double[][] newСoordinates, double accuracyEnergy, double accuracyK, double h, int pow, double k, double EnergyOld, double EnergyNew, Group group, Cylinder cylinder, Label labelEnergyValue) {
while (k >= accuracyK & EnergyOld > EnergyNew) {
if (EnergyOld - EnergyNew <= accuracyEnergy) {
k = k/2;
}
EnergyOld = EnergyNew;
newСoordinates = NewCoordinatesWhenMinimizing(newСoordinates,h,pow,k);
EnergyNew = TotalSystemEnergy(newСoordinates,h,pow);
labelEnergyValue.setText(String.valueOf(EnergyNew));
ParticleMapping(newСoordinates,group,cylinder,Color.BISQUE);
}
return newСoordinates;
}
public static void ParticleMapping(double[][] array, Group group, Cylinder cylinder, Color color) {
group.getChildren().clear();
group.getChildren().add(cylinder);
for (int i = 0; i < (array[0].length); i++) {
var nub = new Sphere(5);
nub.setMaterial(new PhongMaterial(color));
nub.setTranslateX (array[0][i]*80);
nub.setTranslateY (array[2][i]*80);
nub.setTranslateZ (array[1][i]*80);
group.getChildren().add(nub);
}
粒子映射方法应绘制具有新坐标的粒子。我使用javafx,但我不使用fxml。
我想我应该使用 AnimationTimer 或 Timeline,但我不明白如何。如果您有时间帮助我,我将不胜感激。
答: 暂无答案
评论