地铁站规划Word下载.docx

上传人:b****4 文档编号:7033953 上传时间:2023-05-07 格式:DOCX 页数:20 大小:127.42KB
下载 相关 举报
地铁站规划Word下载.docx_第1页
第1页 / 共20页
地铁站规划Word下载.docx_第2页
第2页 / 共20页
地铁站规划Word下载.docx_第3页
第3页 / 共20页
地铁站规划Word下载.docx_第4页
第4页 / 共20页
地铁站规划Word下载.docx_第5页
第5页 / 共20页
地铁站规划Word下载.docx_第6页
第6页 / 共20页
地铁站规划Word下载.docx_第7页
第7页 / 共20页
地铁站规划Word下载.docx_第8页
第8页 / 共20页
地铁站规划Word下载.docx_第9页
第9页 / 共20页
地铁站规划Word下载.docx_第10页
第10页 / 共20页
地铁站规划Word下载.docx_第11页
第11页 / 共20页
地铁站规划Word下载.docx_第12页
第12页 / 共20页
地铁站规划Word下载.docx_第13页
第13页 / 共20页
地铁站规划Word下载.docx_第14页
第14页 / 共20页
地铁站规划Word下载.docx_第15页
第15页 / 共20页
地铁站规划Word下载.docx_第16页
第16页 / 共20页
地铁站规划Word下载.docx_第17页
第17页 / 共20页
地铁站规划Word下载.docx_第18页
第18页 / 共20页
地铁站规划Word下载.docx_第19页
第19页 / 共20页
地铁站规划Word下载.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

地铁站规划Word下载.docx

《地铁站规划Word下载.docx》由会员分享,可在线阅读,更多相关《地铁站规划Word下载.docx(20页珍藏版)》请在冰点文库上搜索。

地铁站规划Word下载.docx

因此选择内接六边形进行连接。

接下来就是不断地在以原来六边形的基础上生成新的六边形直到完全覆盖城市为止。

如下图可以把六边形覆盖过程看成是由第一个六边形A先沿30度方向平移生成新的六边形直到生成的新六边形完全离开城区。

然后将A沿y轴向上平移得到新的六边形B,再将B沿30度方向平移得到新的六边形直到新的六边形完全离开城区………以此类推就可以将整个城区用六边形覆盖。

我们组用C++模拟这个覆盖过程。

至于设计出最佳地铁线路,可以转换为求最小生成树问题。

模型假设:

1.每个地铁站近似地看成一个质点

2.城区的任何地方都可以建造地铁

模型建立与求解:

首先用matlab求各点坐标,进而求出各个直线的解析式。

用C++编程求得最少需要221个六边形覆盖城区,我们组将每个六边形的中点作为作为建立地铁站的位置。

以下为221个地铁站的坐标:

060

866.9282

880.7846

873.8564

894.641

887.7128

16101.569

1694.641

1687.7128

1680.7846

1673.8564

1666.9282

16115.426

16108.497

16129.282

16122.354

16143.138

16136.21

1660

32143.138

32136.21

32129.282

32122.354

32115.426

32108.497

32101.569

3294.641

3287.7128

3280.7846

3273.8564

3266.9282

3260

48143.138

48136.21

48129.282

48122.354

48115.426

48108.497

48101.569

4894.641

4887.7128

4880.7846

4873.8564

4866.9282

4860

64143.138

64136.21

64129.282

64122.354

64115.426

64108.497

64101.569

6494.641

6487.7128

6480.7846

6473.8564

6466.9282

6460

80143.138

80136.21

80129.282

80122.354

80115.426

80108.497

80101.569

8094.641

8087.7128

8080.7846

8073.8564

8066.9282

8060

96143.138

96136.21

96129.282

96122.354

96115.426

96108.497

96101.569

9694.641

9687.7128

9680.7846

9673.8564

9666.9282

9660

112143.138

112136.21

112129.282

112122.354

112115.426

112108.497

112101.569

11294.641

11287.7128

11280.7846

11273.8564

11266.9282

11260

128143.138

128136.21

128129.282

128122.354

128115.426

128108.497

128101.569

12894.641

12887.7128

12880.7846

12873.8564

12866.9282

12860

136150.067

136143.138

136136.21

136129.282

136122.354

136115.426

136108.497

136101.569

13694.641

13687.7128

13680.7846

13673.8564

13666.9282

13660

136163.923

136156.995

144170.851

144163.923

144156.995

144150.067

144143.138

144136.21

144129.282

144122.354

144115.426

144108.497

144101.569

14494.641

14487.7128

152177.779

152170.851

152163.923

152156.995

152150.067

152143.138

152136.21

152129.282

152122.354

152115.426

152108.497

152101.569

160184.708

160177.779

160170.851

160163.923

160156.995

160150.067

160143.138

160136.21

160129.282

160122.354

160115.426

168191.636

168184.708

168177.779

168170.851

168163.923

168156.995

168150.067

168143.138

168136.21

168129.282

176198.564

176191.636

176184.708

176177.779

176170.851

176163.923

176156.995

176150.067

176143.138

利用C++编写程序计算221个点之间的距离,随后即可用matlab求出最小生成树的邻接矩阵,由于运行结果是一个221*221的矩阵,太过巨大,因此只选择结果的某一个部分,该结果表示第一个地铁站与第二个地铁站相连,距离为10.583,第二个地铁站与第四个地铁站相连,距离为6.9282……..以此类推,就可以画出地铁线路得到地铁如何换乘。

附录:

1.C++编程模拟六边形覆盖城区的过程

#include<

iostream>

math.h>

fstream>

usingnamespacestd;

intnum=0;

boolflag(doublex,doubley)

{boolt=true;

if((144-y>

=0&

&

y-60>

5.6*x-y+60>

-0.8*x-y+240>

=0)||(0.8*x+y-240>

-0.8*x-y+347.5725>

1.25*x-y-6>

-1.25*x+y+356.5711>

=0))t=true;

else

t=false;

returnt;

}

booloutside(doublex0,doubley0)

{

doublex1,x2,x3,x4,x5,x6,y1,y2,y3,y4,y5,y6;

intjishu=0;

if(flag(x0,y0))jishu++;

x1=x0+8;

y1=y0;

x2=x0+4;

y2=y0+4*sqrt(3);

x3=x0-4;

y3=y2;

x4=x0-8;

y4=y0;

x5=x0-4;

y5=y0-4*sqrt(3);

x6=x2;

y6=y5;

if(flag(x1,y1))jishu++;

if(flag(x2,y2))jishu++;

if(flag(x3,y3))jishu++;

if(flag(x4,y4))jishu++;

if(flag(x5,y5))jishu++;

if(flag(x6,y6))jishu++;

if(jishu==0)returnfalse;

else

returntrue;

doublebornx(doublex0)

returnx0+8;

doubleborny(doubley0)

returny0-4*sqrt(3);

intmain()

ofstreamoutfile("

subway.txt"

ios:

:

in);

if(!

outfile)cout<

<

"

openfileerror"

endl;

doublex0=0;

doubley0=60;

doublefix0=x0;

doublefiy0=y0;

inti=0;

intj=0;

while(j<

=30)

{

i=0;

while(i<

{

if(flag(x0,y0)){outfile<

x0<

"

y0<

num++;

else

x0=bornx(x0);

y0=borny(y0);

i++;

}

x0=fix0;

y0=fiy0+8*sqrt(3);

fix0=x0;

fiy0=y0;

j++;

}

fix0=0;

fiy0=60;

x0=fix0;

y0=fiy0-8*sqrt(3);

fix0=x0;

fiy0=y0;

j=0;

while(j<

=10)

y0=fiy0-8*sqrt(3);

cout<

num;

return0;

2.计算各点的距离

#include<

main()

ifstreaminfile("

distance.txt"

out);

doublea[221][2];

while(i<

=220)

{

infile>

>

a[i][0]>

a[i][1];

i++;

i=0;

intj=0;

doubleb;

j=0;

{

b=sqrt((a[i][0]-a[j][0])*(a[i][0]-a[j][0])+(a[i][1]-a[j][1])*(a[i][1]-a[j][1]));

outfile<

b<

;

j++;

}

outfile<

3最小生成树的matlab代码

function 

[b,u,w]=mintrees(a,k)%最小生成树 

,a 

邻接矩阵,k 

起点

if 

nargout==1

k=1;

end

[m,n]=size(a);

for 

i=1:

m

j=1:

n

a(i,j)==0

a(i,j)=inf;

b=zeros(n);

u

(1)=k;

j=1;

v=zeros(1,n);

v(k)=1;

o=1:

n-1

sn=ones(3,n)*inf;

xk=1:

j

k=u(xk);

p=max(a(k,:

));

v(i)<

1&

a(k,i)<

p

p=a(k,i);

a(k,i)==p

break;

sn([1 

3],k)=[i,p,u(xk)];

[w(j),k]=min(sn(2,:

j=j+1;

u(j)=sn(1,k);

b(sn(1,k),sn(3,k))=sn(2,k);

v(u(j))=1;

在命令窗口输入

A=load(‘distance.txt’);

B=mintrees(A)%B为最小生成树的领阶矩阵

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2