?? calculator.java
字號:
import java.util.*;
public class calculator
{
double com[];int numberFunc=1;
double x1,x2,delta;
Vector vx,vy;
double arrX[],arrY[];
double max,min;
int toaDoX[],toaDoY[],gocX,gocY;
public double kx,ky;
function fc;
public calculator(int numberFunc,double com[],double x1,double x2)
{
this.numberFunc=numberFunc;this.com=com;
this.x1=x1;this.x2=x2;
vx=new Vector();vy=new Vector();
delta=0.001;fc=new function();
}
public void calculate()
{
int i=0;
double x=x1+i*delta;
double y;
while(x<x2)
{
vx.addElement(String.valueOf(x));
y=fc.getValue(numberFunc,com,x);
vy.addElement(String.valueOf(y));
i++;
x=x1+i*delta;
}
}
public void max_min()
{
calculate();Double f;
arrX=new double[vx.size()];
arrY=new double[vy.size()];
for(int i=0;i<vx.size();i++)
{
f=new Double(vx.elementAt(i).toString());
arrX[i]=f.doubleValue();
}
for(int i=0;i<vy.size();i++)
{
f=new Double(vy.elementAt(i).toString());
arrY[i]=f.doubleValue();
}
max=arrY[0];min=arrY[0];
for(int i=0;i<vy.size();i++)
{
max=Math.max(max,arrY[i]);min=Math.min(min,arrY[i]);
}
}
public void calCoordinate()
{
max_min();
kx=600/Math.abs(x2-x1);ky=500/Math.abs(max-min);
for(int i=0;i<vx.size();i++)
{ arrX[i]=arrX[i]*kx;}
for(int i=0;i<vy.size();i++)
{arrY[i]=arrY[i]*ky;}
toaDoX=new int[vx.size()];toaDoY=new int[vy.size()];
gocX=(int)(Math.abs(x2-x1)*kx/2);
//gocX=300;
if(com[0]>=0){gocY=(int)(Math.abs(max-min)*ky)-(int)(Math.abs(min)*ky);}
else{gocY=(int)(Math.abs(max)*ky)+50;}
Double d;
for(int i=0;i<vx.size();i++)
{
d=new Double(arrX[i]);
toaDoX[i]=d.intValue()+gocX;
}
for(int i=0;i<vy.size();i++)
{
d=new Double(arrY[i]);
toaDoY[i]=gocY-d.intValue();
}
}
public String[] getNameFunc()
{return fc.getNameFunc();}
public int getNumberCoff(int numberFunc)
{return fc.getNumberCoff(numberFunc);}
public int[] getCoordinateX()
{
calCoordinate();
return toaDoX;
}
public int[] getCoordinateY()
{
calCoordinate();
return toaDoY;
}
public int[] getAxisX()
{
calCoordinate();
int axisX[]=new int[3];
axisX[0]=(int)(x1*kx)+gocX;
axisX[1]=(int)(x2*kx)+gocX;
axisX[2]=gocY;
return axisX;
}
public int[] getAxisY()
{
calCoordinate();
int axisY[]=new int[3];
axisY[0]=toaDoY[0];axisY[1]=toaDoY[0];
for(int i=0;i<toaDoY.length;i++)
{
axisY[0]=Math.min(axisY[0],toaDoY[i]);
axisY[1]=Math.max(axisY[1],toaDoY[i]);
}
axisY[2]=gocX;
return axisY;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -