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

📄 graph1.java

📁 Clustering demo.very good
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.Color;
import javax.swing.JComponent;

public class Graph1 extends JFrame{
      double minX,minY,maxX,maxY;
      double scaleX,scaleY;
      Cluster[] clusters;
      Color[] colors={Color.BLACK,Color.MAGENTA,Color.RED,Color.BLUE,Color.CYAN,Color.PINK,Color.GREEN,Color.ORANGE,Color.YELLOW};
      public Graph1(Cluster[] clusts){
	super("Graph");
	clusters=clusts;
	calMinMaxPoints();
	setSize(1025,750);
	setVisible(true);
      }
      public void paint(Graphics g){
	System.out.println("paint called..");
	validate();
	g.translate(50,50);
	setBackground(Color.white);
	g.setColor(Color.RED);
	g.drawLine(0,0,950,0);
	g.drawLine(0,0,0,650);
	drawBoundaries(g);
	g.setColor(Color.BLACK);
	plotPoints(g);
//	g.drawOval(100,100,3,3);
//	g.drawOval(105,100,3,3);
      }
      public void drawBoundaries(Graphics g){
	double i=0;int j=0;
	g.setColor(Color.blue);
	// points for X-axis
	for(i=0,j=0; i<=950+scaleX; i+=scaleX,j++){
         	    g.drawLine((int)i,0,(int)i,3);
	    g.drawString(""+((int)Math.floor(minX)+j),(int)(i-10),-5);
	}
	// points for Y-axis
	for(i=0,j=0; i<=650; i+=scaleY,j++){
         	    g.drawLine(0,(int)i,3,(int)i);
	    g.drawString(""+((int)Math.floor(minY)+j),-25,(int)i);
	}
      }
      public void calMinMaxPoints(){
	int i=0,j=0;
	double x,y;
	    for(i=0;i<clusters.length;i++)
	         for(j=0;j<clusters[i].getClusterSize();j++){
		DataPoint dp=clusters[i].getDataPoint(j);
		x=dp.getX();
		y=dp.getY();
		if( i==0 && j==0){
		     minX=maxX=x;
		     minY=maxY=y;
		}
		else{
		     if(minX>x) minX=x;
		     if(maxX<x) maxX=x;
		     if(minY>y) minY=y;
		     if(maxY<y) maxY=y;
		}
	        }
        System.out.println("\nminX is "+minX+" minY is "+minY+" maxX is "+maxX+" maxY is "+maxY);
        minX=Math.floor(minX/10)*10;          //((int)(minX/10)-1)*10;
        minY=Math.floor(minY/10)*10;	//((int)(minY/10)-1)*10;
        maxX=Math.ceil(maxX/10)*10; 	//((int)(maxX/10)+1)*10;
        maxY=Math.ceil(maxY/10)*10;	//((int)(maxY/10)+1)*10;
         if(minX<0) minX=0;
         if(maxX<0) maxX=0;
        scaleX=((950.0)/(maxX-minX));
        scaleY=((650.0)/(maxY-minY));
        System.out.println("\nminX is "+minX+" minY is "+minY+" maxX is "+maxX+" maxY is "+maxY+"scalX is: "+scaleX+" scaleY is "+scaleY);
     }
     public void plotPoints(Graphics g){
            int i,j;
            int x,y;

	// plot the cluster points
	for(i=0; i<clusters.length; i++){
	    g.setColor(colors[i]);
	      for(j=0; j<clusters[i].getClusterSize(); j++){
		DataPoint dp=clusters[i].getDataPoint(j);
		x=(int)dp.getX();
		y=(int)dp.getY();
		x=(int)((x-minX)*scaleX);
		y=(int)((y-minY)*scaleY);
		g.drawOval(x,y,5,5);
	    }
	}
    }
}

⌨️ 快捷键说明

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