Необходимо реализовать пошаговую отрисовку графика функции в реальном времени

у меня имеется код, который сохраняет точки графика на промежутке [a, b].

NumberAxis x = new NumberAxis();
NumberAxis y = new NumberAxis();
LineChart<Number, Number> numberLineChart = new LineChart<>(x, y);
numberLineChart.setTitle("График функции \"" + boxChoiceFunction.getValue() + "\"\n" +
        "на промежутке \"A= " + a + "; B= " + b + "\"");
XYChart.Series series1 = new XYChart.Series();
XYChart.Series series2 = new XYChart.Series();
ObservableList<XYChart.Data> datas = FXCollections.observableArrayList();
ObservableList<XYChart.Data> datas1 = FXCollections.observableArrayList();
for (double i = a; i < b; i += 0.001) {
     datas.add(new XYChart.Data(i, callF(choice, i))); //i - точка на оси ОХ, 
                                      //callF - метод возвращает значение
                                      //функции в точке i

}

потом создает линию из данных точек и создает окно с графиком, и создает еще одну линию с единственной точкой, которая показывает пересечение графика и оси ОХ (точка - решение функции)

series1.setName("Функция \"" + boxChoiceFunction.getValue() + "\"");
series1.setData(datas);
numberLineChart.getData().add(series1);
if (flagCallAlertWindow) {
    datas1.add(new XYChart.Data(xx, 0));
    series2.setName(answer);
    series2.setData(datas1);
    numberLineChart.getData().add(series2);
}
Stage stage = new Stage();
stage.setTitle("График функции");
stage.setScene(new Scene(numberLineChart));
stage.showAndWait();

Необходимо сделать так, чтобы при открывании окна график только начал отрисовываться, соответственно между отрисовкой точек должна быть задержка хотя бы в 0.1 секунду, а после всего отрисованного графика должна появиться точка решения функции.

Подскажите пожалуйста, как это можно реализовать через AnimationTimer?


Ответы (0 шт):