看板 C_Sharp 關於我們 聯絡資訊
這是我目前的程式碼 public partial class Form1:Form { public Form1() { InitializeComponent(); } Grapghics g1; Pen p1; private void Form_Load(object sender,EvenArgs e) { g1=this.CreateGraphics(); p1=new Pen(Color.Red,2); } int m=0; int n; int i; int j; private void Form1MouseClick(object sender,EvenArgs e) { m++; g1.DrawRectangle(p1,e.X,eY,4,4); int []x=new int[m]; int []y=new int[m]; int [,]L=new int[m,m]; for(n=0;n<m;n++) { x[n]=Convert.ToInt16(e.X); y[n]=Convert.ToInt16(e.Y); } for(i=0;i<m;i++) { for(j=0;j<m;j++) { L[i,j]=Math.Squrt((x[i]-x[j])*(x[i]-x[j])+ (y[i]-y[j])*(y[i]-y[j])); } } } } 而我想問的是如何將資料(L[i,j]) 放入我的buttom去做minimun spanning tree 感謝大大的收看 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.231.33
yauhh:點一個點就取一個範圍的什麼距離的陣列,是想幹嘛呀? 04/16 10:24
yauhh:迴圈算L[i,j]部份有相當多白做的過程,重想在此你想做什麼. 04/16 10:26
yauhh:...嗯,也許L[i,j]沒白做,不過用一個陣列表達一個點,你想要 04/16 10:34
yauhh:取什麼精確值嗎? 04/16 10:34
dreamday1023:L[i,j]我是用來取兩點距離的 因為MST要比較最短距離 04/16 14:07
dreamday1023:所以我在mouseclick上先計算 然後最放進buttomclick 04/16 14:09
dreamday1023:不知這樣做可不可以喔 04/16 14:10
yauhh:程式上看,不是你講的這個樣子喔 04/16 16:48
dreamday1023:所以我弄錯了嗎 囧 那我x[m]及y[m]應該有存到吧 04/16 19:42
yauhh:按第一下時產生兩個[1]陣列,按第二下產生兩個[2]陣列... 04/16 21:28
yauhh:可是問題在按第二下時,仍不知道按第一下產生的x,y.. 04/16 21:31
yauhh:應該是起碼L[,]是外部變數,每按一下是將x,y存到L[,],然後 04/16 21:32
yauhh:要立刻算MST也可以,要等到其他點也按下之後再算也可以. 04/16 21:33
yauhh:但是,除了按點之外,還要拉線,才能求MST呀,你除了要儲存點, 04/16 21:34
yauhh:還要儲存線才對. 04/16 21:34
dreamday1023:不好意思喔 我不太懂儲存線的意思是啥 算L[i,j] 04/16 21:38
dreamday1023:就可以了嗎 然後再由最小的L[i,j]去連點 i 跟 點 j 04/16 21:39
james732:或許你也可以貼上你想做的「演算法的每一個步驟」 04/16 21:46
james732:然後說說你是卡在哪一步 04/16 21:46