Если вы хотите реализовать график самостоятельно, сначала получите свои точки x, y в двух массивах xarray[]
, yarray[]
.Обычно для реализации изогнутого графика вам нужны точки между точками данных, которые у вас уже есть.Используйте интерполяцию для этого www.webcabcomponents.com имеет бесплатную версию программы интерполяции.Вы просто даете xarray
, yarray
, any_x
и получаете интерполированную точку y для любого x.Вы можете построить кривые с непрерывным внешним видом по коду, например,
[pseudo code]
firstX,firstY =0 //assumed x=0; y(0)=0
loop
for x= 0 to panel width;
{ get interpolatedY(x);
drawLine from (firstX,firstY) to (nextX,nextY);
//use Graphics.drawLine command
firstX=nextX; firstY=nextY;
}
Возможно, вам придется установить Scale, если необходимо, и умножить firstX
и т. Д. На масштаб.
Для интерполяции эти биты кода будутначать.returnedArray
имеет два элемента.Сначала returnedArray[0]
является обязательным y.Другой - оценка ошибки (пока пренебрегайте).
import webcab.lib.math.interpolation.Interpolation;
Interpolation interpol1 = new Interpolation();
double[] returnedArray = interpol1.interpolateExtrapolatePolynomial(getQArray(),getEArray(),x);
y=returnedArray[0];
Вышеупомянутый метод interpolateExtrapolatePolynomial(getQArray(),getEArray(),x)
предназначен для кривых полимиального типа.Если ваши точки данных следуют какому-либо другому классу шаблонов, интерполяция имеет другие методы.Или вы можете реализовать себя, используя численные методы.
Удачного кодирования!