作者dreamday1023 (也許我就是我,好好愛自己)
看板C_Sharp
標題Re: [問題] minimum spanning tree
時間Fri Apr 16 02:11:33 2010
這是我目前的程式碼
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
1F:推 yauhh:點一個點就取一個範圍的什麼距離的陣列,是想幹嘛呀? 04/16 10:24
2F:→ yauhh:迴圈算L[i,j]部份有相當多白做的過程,重想在此你想做什麼. 04/16 10:26
3F:→ yauhh:...嗯,也許L[i,j]沒白做,不過用一個陣列表達一個點,你想要 04/16 10:34
4F:→ yauhh:取什麼精確值嗎? 04/16 10:34
5F:→ dreamday1023:L[i,j]我是用來取兩點距離的 因為MST要比較最短距離 04/16 14:07
6F:→ dreamday1023:所以我在mouseclick上先計算 然後最放進buttomclick 04/16 14:09
7F:→ dreamday1023:不知這樣做可不可以喔 04/16 14:10
8F:推 yauhh:程式上看,不是你講的這個樣子喔 04/16 16:48
9F:→ dreamday1023:所以我弄錯了嗎 囧 那我x[m]及y[m]應該有存到吧 04/16 19:42
10F:→ yauhh:按第一下時產生兩個[1]陣列,按第二下產生兩個[2]陣列... 04/16 21:28
11F:→ yauhh:可是問題在按第二下時,仍不知道按第一下產生的x,y.. 04/16 21:31
12F:→ yauhh:應該是起碼L[,]是外部變數,每按一下是將x,y存到L[,],然後 04/16 21:32
13F:→ yauhh:要立刻算MST也可以,要等到其他點也按下之後再算也可以. 04/16 21:33
14F:→ yauhh:但是,除了按點之外,還要拉線,才能求MST呀,你除了要儲存點, 04/16 21:34
15F:→ yauhh:還要儲存線才對. 04/16 21:34
16F:→ dreamday1023:不好意思喔 我不太懂儲存線的意思是啥 算L[i,j] 04/16 21:38
17F:→ dreamday1023:就可以了嗎 然後再由最小的L[i,j]去連點 i 跟 點 j 04/16 21:39
18F:→ james732:或許你也可以貼上你想做的「演算法的每一個步驟」 04/16 21:46
19F:→ james732:然後說說你是卡在哪一步 04/16 21:46