作者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