我用java做的曲线拟合,为什么画不出曲线?帮帮忙各位

楼歪 2015-05-28 09:19:40
package curve;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Map;
import java.util.TreeMap;

import javax.swing.JFrame;

public class Interpose extends JFrame {
public static double[] X;
public static double[] Y;
public static void main(String[] args) {
// Map m2=new TreeMap<String,Double[]>();
// Bineng b=new Bineng();
// m2=b.genData();
// X =(double[]) m2.get("bi2");
// Y = (double[]) m2.get("n2");
X=new double[3];
Y=new double[3];
for(int i=0;i<3;i++){
X[i]=i;
Y[i]=i*i;
System.out.println(X[i]);
System.out.println(Y[i]);
}
Interpose i=new Interpose();
}

public Interpose() {
super();

setBounds(0, 0, 600, 600);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent ev) {
dispose();
System.exit(0);
}
});
setVisible(true);
}
//Lagrange interpose
public static double Lagrange(double x[], double y[], double value) {

double sum = 0;
double L;
for (int i = 0; i < x.length; i++) {
L = 1;
for (int j = 0; j < x.length; j++) {
if (j != i)
L = L * (value - x[j]) / (x[i] - x[j]);
}
sum = sum + L * y[i];
}
return sum;
}

// public void paint(Graphics g,double[] bi,double[] n) {
public void paint(Graphics g){
// double[] X = { 123.334, 134.4532,133.1233 };
// double[] Y = { 224.567, 245.565,257.899};
double min=Double.MAX_VALUE;
double max=Double.MIN_VALUE;
for(int i=0;i<X.length;i++){
if(X[i]>max) max=X[i];
if(X[i]<min) min=X[i];
}
g.setColor(Color.red);
for (double x = min; x <= max; x = x + 0.01) {
g.drawLine((int) x, (int) Lagrange(X, Y, x), (int) x,
(int) Lagrange(X, Y, x));
}
}

}
...全文
388 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
alan19931103 2015-05-28
  • 打赏
  • 举报
回复
因为你根本没画。。。
三仙半 2015-05-28
  • 打赏
  • 举报
回复
drawLine()方法的前两个参数是起点坐标,后两个参数是终点坐标,你现在把它们设置成一样了,画不出线来啊

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧