graphpanel.java

来自「经典人工智能源程序」· Java 代码 · 共 61 行

JAVA
61
字号
/** * Title:        <p> * Description:  <p> * Copyright:    Copyright (c) <p> * Company:      <p> * @author * @version 1.0 */import javax.swing.*;import java.awt.*;public class GraphPanel extends java.awt.Canvas { // JPanel {  public GraphPanel(float [] data1, float []data2) {    super();    this.data1 = data1;    this.data2 = data2;  }  Color black = new Color(0, 0, 0);  float [] data1;  float [] data2;  public void paint(Graphics g) {    if (data1 == null || data2 == null) return;    int width = this.getWidth();    int height = this.getHeight();    System.out.println("height="+height);    float min = 99999999.9f;    float max = -min;    int maxindex = 0;    float maxval = 0.0f;    for (int i=0; i<data1.length; i++) { // assume length of data1 and data2 are the same      if (min > data1[i]) min = data1[i];      if (max < data1[i]) max = data1[i];      if (min > data2[i]) min = data2[i];      if (max < data2[i]) max = data2[i];    }    System.out.println("min=" + min +", max=" + max);    g.setColor(Color.red);    for (int i=0; i<data1.length - 1; i++) {      float y1 = height - 5 - 0.95f *height * ((data1[i] - min)  / (max - min));      float y2 = height - 5 - 0.95f *height * ((data1[i+1] - min)  / (max - min));      //System.out.println("data["+i+"]="+data[i]+", y1="+y1+", y2="+y2);      g.drawLine(i+20, (int)y1, i+21, (int)y2);      y1 = height - 5 - 0.95f *height * ((data2[i] - min)  / (max - min));      y2 = height - 5 - 0.95f *height * ((data2[i+1] - min)  / (max - min));      //System.out.println("data["+i+"]="+data[i]+", y1="+y1+", y2="+y2);      g.drawLine(i+20, (int)y1, i+21, (int)y2);    }    float yzero = height - 5 - 0.95f *height * ((0.0f - min)  / (max - min));    g.setColor(black);    g.drawLine(20, (int)yzero, data2.length + 19, (int)yzero);    g.drawLine(width / 2, height/2 - 118, width/2, height/2 + 118);    g.drawString("Sigmoid", width / 2 - 100, 3 * height / 4 - 10);    g.drawString("SigmoidP", width / 3 - 5, 1 * height / 4 + 10);    g.drawString("-5", 4, (int)yzero);    g.drawString("5", width - 19, (int)yzero);    g.drawString("0.5", width/2 - 7, 12);    g.drawString("-0.5", width/2 - 9, height - 3);  }}

⌨️ 快捷键说明

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