Тема: Накладання графіків JavaFX
Доброї години дня, шановні. При використанні графіків JavaFX, а саме LineChart - зіткнувся з проблемою. При додаванні двох серій на граф - серії не накладаються, а робляться так, як показано на скріні. Графіки - це розв'язки диференційних рівнянь різними методами, які повертають не цілі значення. Перевіряв, вводячи цілочисельні дані до серій - графіки накладались.
обробник події, яким я виводжу передаю графіки на граф
public void ok(){
EulerMethod EM = new EulerMethod();
RungeKuttaMethod RM = new RungeKuttaMethod();
graf.getData().clear();
graf.setTitle("Порівняння методів");
graf.getData().addAll(EM.calc(), RM.calc());
graf.setCreateSymbols(false);
}
частина коду першого методу
public XYChart.Series calc(){
XYChart.Series series = new XYChart.Series();
series.setName("Метод Ейлера");
while (x <= 3) {
y = y + f(x, y) * h;
x = x + h;
String X = Double.toString(x);
series.getData().addAll(new XYChart.Data<>(X, y));
}
return series;
}
частина коду другого методу
public XYChart.Series calc() {
XYChart.Series series1 = new XYChart.Series();
series1.setName("Метод Рунге - Кутта");
for (x = x0; x <= x1; ) {
dy1_dx = f(x, y);
k1 = dx * dy1_dx;
x = x + dx / 2;
y1d = y + k1 / 2;
dy2_dx = f(x, y1d);
k2 = dx * dy2_dx;
y2d = y + k2 / 2;
dy3_dx = f(x, y2d);
k3 = dx * dy3_dx;
y3d = y + k3;
x = x + dx / 2;
dy4_dx = f(x, y3d);
k4 = dx * dy4_dx;
y = y + (1.0 / 6) * (k1 + 2 * k2 + 2 * k3 + k4);
String X = Double.toString(x);
series1.getData().addAll(new XYChart.Data<>(X, y));
}
return series1;
}