JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Java 新手區  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to postflat modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 如何把分出來的點用不同顏色表示???
KuanChih0103





發文: 10
積分: 0
於 2005-11-04 00:39 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
把點秀出來之前有參考ㄧ篇文章,因為要PRESENT一個演算法,懇請各位先進指教,就是先產生100個點,然後依位置遠近,把她們分成幾個群組,不同群組用不同顏色表示,我預先分成5組(當然是可以改變的),然後去顯示,但是出來點都是黑色的,請問是哪裡錯嗎 ??感謝指教(ps.演算法是data mining裡的K-means 要去作cluster)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
package k_means;
 
import java.io.*;
import java.awt.*;
 
import javax.swing.JOptionPane;
 
public class K_means {
 
  /**
   * @param args
   */
  
  public static void main(String[] args) throws Exception {
      // TODO Auto-generated method stub
           int x = 0 ;
           int y = 0 ;
           int intPointNum = 0 ;
          
  String strPointNum = JOptionPane.showInputDialog("輸入產生幾個點(最多120)==") ;
           intPointNum = Integer.parseInt(strPointNum) ;
           if(intPointNum >120){
             intPointNum = 100 ;
           }
           
           drow F = new drow(intPointNum,5) ;
           for(int i = 0;i<intPointNum;i++){
             x = (int)(Math.random()*400+1) ;
             y = (int)(Math.random()*400+1) ;
            
             F.setXY(i,x,y) ;
             System.out.println("原本傳的值" + x);
               System.out.println("原本傳的值" + y);
               
           }
           Frame f = new Frame("drow");
           f.add(F, BorderLayout.CENTER);
           f.pack();
           f.setVisible(true);  
           
      
    }
 
  }
 
  class drow extends Canvas {
    int[][] dot ;
    int[][][] dot1 ;
    int x = 0 ;
    int y = 0 ;
    int z = 0 ; //分成z個cluster
    double temp = 0.0 ;
    int[][] clisterZ = new int[5][100] ;;
    int group = 0 ;
    double minX = 0.0 ;
    double minY = 0.0 ;
    double sumX = 0.0 ;
    double sumY = 0.0 ;
    double minXY = 0.0 ;
    
    public drow(int number,int number2){
      setSize(600,600) ;
      dot = new int[number][2] ;
      dot1 = new int[5][number][2] ;
      z = number2 ;
    }
    public void setXY(int i ,int x,int y ){
      System.out.println("this中的x值"+x) ;
      System.out.println("this中的y值"+y) ;
      dot[i][0] = x ;
      dot[i][1] = y ;
      
    }
    public void paint(Graphics g){
      
  //先宣告一個陣列 存放選到的z個變數當作一開始的中心點
      int[] minZ = new int[z] ;
      
      for(int i = 0;i<z;i++){
      minZ[i] = (int)(Math.random()*100) ;
      }
        
      for(int i = 0;i<dot.length ; i++){
        for(int j = 0;j<z;j++){
        double maxP = Math.pow(dot[i][0]-dot[j][0],2) + Math.pow(dot[i][1]-dot[j][1],2)  ;
          
  if( maxP >=temp){
    group = j ; //把目前這個 i 分到第 j 組
       temp = maxP ;
          }
        }
        
      for(int m = 0;m<z;m++){
      
          
       if(m == group){
            clisterZ[m][i] = i ;  
            }else{
              clisterZ[m][i] = 0 ;
            }
            
        }
        
      }
         
      for(int m = 0;m<z ;m++){
        for(int i = 0;i<dot.length;i++){
          String[] strColor = {"RED","BLACK","GREEN","BLUE","CYAN"} ;
          if(clisterZ[m][i] != 0 ){
            g.setColor(Color.getColor(strColor[m])) ;
            g.fillOval(dot[clisterZ[m][i]][0],dot[clisterZ[m][i]][1],10,10) ;
          }
        }
        
      }
      
          
    }
    
    
  }


reply to postreply to post
話題樹型展開
人氣 標題 作者 字數 發文時間
2260 如何把分出來的點用不同顏色表示??? KuanChih0103 2898 2005-11-04 00:39
1552 Re:如何把分出來的點用不同顏色表示??? bluedkdk 764 2005-11-06 07:59
1632 Re:如何把分出來的點用不同顏色表示??? KuanChih0103 31 2005-11-06 13:23
» JWorld@TW »  Java 新手區

reply to postflat modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8