⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 curve.java~45~

📁 本程序用JAVA编制
💻 JAVA~45~
字号:
package curve;import java.awt.*;import java.awt.event.*;import java.applet.*;import java.util.Vector;import java.lang.Math;public class curve {  Graphics myGC;  Font graphFont;  int axisH;  int axisW;  int xOrigin;  int yOrigin;  int xSpacing;  int ySpacing;  public curve(Graphics g) {    myGC=g;    graphFont=new Font("宋体",Font.PLAIN,12);    myGC.setFont(graphFont);    myGC.setColor(new Color(255,255,255));  }  public void fillImage(int W,int H){    myGC.fillRect(0,0,W,H);  }  // ******** 画坐标轴 ********  public void drawAxes(int W,int H){    axisW=W-100;    axisH=H-100;    xOrigin=(W-axisW)/2;    yOrigin=(H-axisH)/2+axisH;    // 绘制具有3D效果的坐标轴    myGC.setColor(Color.black);    myGC.drawLine(xOrigin,yOrigin,xOrigin+axisW,yOrigin);    myGC.drawLine(xOrigin,yOrigin,xOrigin,yOrigin-axisH);    // 绘制 X 轴坐标箭头    int x1=xOrigin+axisW;    int triXx[]={x1-4,x1,x1-4,x1-4};    int triXy[]={yOrigin+2,yOrigin,yOrigin-2,yOrigin+2};    Polygon triangleX=new Polygon(triXx,triXy,4);    myGC.drawPolygon(triangleX);    myGC.fillPolygon(triangleX);    myGC.drawString("X",xOrigin+axisW+5,yOrigin+4);  }  // ******** 绘制刻度 ********  public void makeHashMarks(int nXHash,float yTop){    xSpacing=axisW/(nXHash);    ySpacing=axisH/10;    // 绘制 X 轴刻度    myGC.setColor(Color.black);    int x=xOrigin+xSpacing;    myGC.drawString(Integer.toString(0),xOrigin,yOrigin+20); // 原点    for(int t=0;t<nXHash-1;t++){      //myGC.drawLine(x,yOrigin,x,yOrigin-3);      myGC.setColor(Color.black);      myGC.drawString(Integer.toString(t+1),x,yOrigin+20);      myGC.setColor(Color.lightGray);      myGC.drawLine(x,yOrigin-1,x,yOrigin-axisH);  // 竖直网格      x+=xSpacing;    }    // 绘制 Y 轴刻度    int y=yOrigin-ySpacing;    float scaleY=yTop/10;    float sum=0;    for(int t=0;t<10;t++){      //myGC.drawLine(xOrigin,y,xOrigin-3,y);      //myGC.drawLine(xOrigin,y,xOrigin+(nXHash-1)*xSpacing,y); // 水平网格      int xx=xOrigin+(nXHash-1)*xSpacing;      int x0=xOrigin+1;      // 水平网格(虚线) 每段虚线长6,空白4      while(x0<xOrigin+(nXHash-1)*xSpacing){        myGC.setColor(Color.lightGray);        //myGC.setColor(Color.white);        myGC.drawLine(x0,y,x0+6,y);        x0+=10;      }      // 最顶端为实线      myGC.drawLine(xOrigin,yOrigin-axisH,xOrigin+(nXHash-1)*xSpacing,yOrigin-axisH);      // 清除虚线在坐标轴以外的部分      myGC.setColor(new Color(255,255,255));      myGC.fillRect(xx+1,yOrigin-axisH,6,axisH);      // 写 Y 轴刻度值      sum+=scaleY;      myGC.setColor(Color.black);      String str=Float.toString(sum);      myGC.drawString(str.substring(0,str.indexOf(".")+2),xOrigin-25,y+4);      y-=ySpacing;    }  }  // ******** 清除 X 轴刻度 ********  public void clearXHashMarks(){    myGC.setColor(new Color(255,255,255));    myGC.fillRect(xOrigin,yOrigin+1,xOrigin+axisW,yOrigin+5);  }  // ******** 清除 Y 轴刻度值 ********  public void clearYHashMarks(){    myGC.setColor(new Color(255,255,255));    myGC.fillRect(xOrigin-30,yOrigin-axisH-10,30,axisH+10);  }  // 清除整个绘图区域  public void clearScreen(){    myGC.setColor(new Color(255,255,255));    myGC.fillRect(xOrigin,(yOrigin-axisH)-20,axisW+30,axisH+20);  }  // ******** 在曲线的顶端绘制标题 s代表标题 ********  public void makeTitle(String s){    //String temp=s;    int yTemp=(yOrigin-axisH)/2;    int xTemp=xOrigin;    // 清除以前的文本    myGC.setColor(new Color(100,150,150));    myGC.fillRect(xTemp,yTemp-15,axisW,20);    myGC.setColor(Color.blue);    myGC.drawString(s,xTemp,yTemp);  }  // ******** 确定矢量中的最大的 Y 值 ********   public float getMaxY(Vector v){      float max=0;      for(int i=0;i<v.size();i++){        float temp=((Float)v.elementAt(i)).floatValue();        if(temp>max) max=temp;      }      return(max);  }  // ******** 取坐标轴的最大长度 ********  /*public float getTopY(Vector v){    float yTop=0;    float y_max=getMaxY(v);    if(y_max>=10){      yTop=((int)(getMaxY(v)/10)+1)*10;      //yTop=Math.round(getMaxY(v))+1;    }else {      yTop=((y_max%10)+0.1)*10.0;    }    return yTop;  }*/  // ******** 给定包含数据的矢量对象,该方法将在图像上显示数据,v 代表初始化的矢量对象。  public void showData(Vector v){    int xPoint;    int yPoint;    // 确定第一个数据点的 X 坐标    xPoint=xOrigin;    int oldX=0;    int oldY=0;    float max=getMaxY(v);    // 在数据点上绘制小圆    for(int j=0;j<v.size();j++){      yPoint=yOrigin-(int)((axisH/max)*((Float)v.elementAt(j)).floatValue());      myGC.setColor(Color.blue);      myGC.fillRect(xPoint-1,yPoint,3,3);      // 在数据点间绘制线--红色      myGC.setColor(Color.red);      if ((oldX!=0)&&(oldY!=0)){        myGC.drawLine(oldX-xSpacing,oldY,xPoint,yPoint);      }      // 在数据点旁边写数据点值--蓝色      myGC.setColor(Color.blue);      String coordString=Float.toString(((Float)v.elementAt(j)).floatValue());      myGC.drawString(coordString,xPoint+5,yPoint-5);      xPoint+=xSpacing;      oldX=xPoint;      oldY=yPoint;    }  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -