2010-12-08 3 views

ответ

0

Если вы хотите реализовать график самостоятельно, сначала получите свои 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; 
} 

Вы, возможно, придется установить масштаб, если это необходимо и умножить firstX и т.д. по шкале.

Для интерполяции этот бит кода поможет вам начать работу. returnedArray имеет два элемента. Сначала требуется returnedArray[0]. Другая - оценка ошибки (сейчас пренебрегаем).

import webcab.lib.math.interpolation.Interpolation; 
Interpolation interpol1 = new Interpolation(); 
double[] returnedArray = interpol1.interpolateExtrapolatePolynomial(getQArray(),getEArray(),x); 
y=returnedArray[0]; 

Описанный выше метод interpolateExtrapolatePolynomial(getQArray(),getEArray(),x) для кривых polymial типа. Если ваши точки данных соответствуют любому другому классу шаблонов, Interpolation имеет другие методы. Или вы можете реализовать себя с помощью численных методов.

Счастливое кодирование!

Смежные вопросы