微波通道穿刺模型研究(五)
来源:互联网 发布:海康威视网络摄像机 编辑:程序博客网 时间:2024/06/10 01:10
五、微波通道穿刺模型的软件实现
经纬度与坐标之间的转换采用高斯变换法,转换坐标为自定义坐标系。如果知道相应点位的坐标参数,直接采用坐标参数计算更为方便。微波通道穿刺模型软件采用FoxPro环境开发,利用数据库的独特优势,不仅可以将每次计算的结果存入数据库,还可以将每次转换的坐标对应数据保存,提高“7参数”坐标转换的的准确性。以下是微波通道穿刺模型主程序的代码。
PUBLIC X1,X2,X31,X32,X33,X34,X4,Y1,Y2,Y31,Y32,Y32,Y33,Y34,Y4,H1,H11,H12,H2,H21,H22,H3,H31,H32,H4,L4,NAME3,RB
STORE 0.000 TO X1,X2,X31,X32,X33,X34,X4,Y1,Y2,Y31,Y32,Y33,Y34,Y4
STORE 0.0 TO H1,H11,H12,H2,H21,H22,H3,h31,H32,H4,L4
STORE 20 TO RB &&微波通道保护半径
SET TALK OFF
CLEAR
Do setup.prg
DO WHILE R>0
STORE 2 TO R,I
DO WHILE I<10
DO FORM INPUT.SCX &&调用坐标转换,自定义坐标系
READ EVENTS
I=ABS(X1-X2)+ABS(Y1-Y2)
I=(X31+Y31)*H3*I
IF X32=0.AND.Y32=0
X32=X31
Y32=Y31
ENDIF
IF X33=0.AND.Y33=0
X33=X31
Y33=Y31
ENDIF
IF X34=0.AND.Y34=0
X34=X31
Y34=Y31
ENDIF
ENDDO
USE 222.DBF
GO BOTTOM
NUM=NUMBER+1
SET DATE TO ANSI
APPEND BLANK
REPLACE NAME WITH NAME3,sendx WITH X1,sendy WITH Y1,sendh WITH H11,sendh1 WITH H12,receivex WITH X2
REPLACE receivey WITH Y2,receiveh WITH H21,receiveh1 WITH H22,date3 WITH DATE()
REPLACE buildingx1 WITH X31,buildingy1 WITH Y31,buildingx2 WITH X32
REPLACE buildingY2 WITH Y32,buildingx3 WITH X33,buildingy3 WITH Y33
REPLACE buildingx4 WITH X34,buildingy4 WITH Y34,buildingH WITH H31,buildingH1 WITH H32,NUMBER WITH NUM
DO WHILE R=2
R=0
IF Y2=Y1 &&特殊函数
X41=X31
Y41=Y1
X42=X32
Y42=Y1
X43=X33
Y43=Y1
X44=X34
Y44=Y1
K=0
ELSE
IF X1=X2 &&特殊函数
X41=X1
Y41=Y31
X42=X1
Y42=Y32
X43=X1
Y43=Y33
X44=X1
Y44=Y34
ELSE
K=(Y2-Y1)/(X2-X1)
B=Y1-K*X1
B11=Y31+X31/K
B12=Y32+X32/K
B13=Y33+X33/K
B14=Y34+X34/K
&&四个交点坐标
X41=(B11-B)*K/(K*K+1)
Y41=(K*K*B11+B)/(K*K+1)
X42=(B12-B)*K/(K*K+1)
Y42=(K*K*B12+B)/(K*K+1)
X43=(B13-B)*K/(K*K+1)
Y43=(K*K*B13+B)/(K*K+1)
X44=(B14-B)*K/(K*K+1)
Y44=(K*K*B14+B)/(K*K+1)
ENDIF
ENDIF
L41=SQRT[(x31-x41)*(x31-x41)+(y31-y41)*(y31-y41)] &&四个点距离
L42=SQRT[(x32-x42)*(x32-x42)+(y32-y42)*(y32-y42)]
L43=SQRT[(x33-x43)*(x33-x43)+(y33-y43)*(y33-y43)]
L44=SQRT[(x34-x44)*(x34-x44)+(y34-y44)*(y34-y44)]
L4=MIN(L41,L42,L43,L44) &&通道中心最短距离
IF L4=L41
X4=X41
Y4=Y41
ENDIF
IF L4=L42
X4=X42
Y4=Y42
ENDIF
IF L4=L43
X4=X43
Y4=Y43
ENDIF
IF L4=L44
X4=X44
Y4=Y44
ENDIF
L4=L4-RB
&&计算高程
L1=SQRT[(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)]
L2=SQRT[(x2-x4)*(x2-x4)+(y2-y4)*(y2-y4)]
L3=SQRT[(x1-x4)*(x1-x4)+(y1-y4)*(y1-y4)]
IF H1>=H2
H4=(H1-H2)*L2/L1
H4=H2+H4
ELSE
H4=(H2-H1)*L3/L1
H4=H1+H4
ENDIF
&&计算通道是否跨越
Y6=X31*K+B-Y31
Y7=X32*K+B-Y32
Y8=X33*K+B-Y33
Y9=X34*K+B-Y34
A1=0
A2=0
A3=0
IF Y6>0
A1=A1+1
ELSE
IF Y6<0
A2=A2+1
ELSE
A3=A3+1
ENDIF
ENDIF
IF Y7>0
A1=A1+1
ELSE
IF Y7<0
A2=A2+1
ELSE
A3=A3+1
ENDIF
ENDIF
IF Y8>0
A1=A1+1
ELSE
IF Y8<0
A2=A2+1
ELSE
A3=A3+1
ENDIF
ENDIF
IF Y9>0
A1=A1+1
ELSE
IF Y9<0
A2=A2+1
ELSE
A3=A3+1
ENDIF
ENDIF
Do circle.prg &&调用圆环穿刺
REPLACE CROSSX1 WITH X41,CROSSY1 WITH Y41,CROSSX2 WITH X42,CROSSY2 WITH Y42
REPLACE CROSSX3 WITH X43,CROSSY3 WITH Y43,CROSSX4 WITH X44,CROSSY4 WITH Y44
REPLACE LENGTH1 WITH L41,LENGTH2 WITH L42,LENGTH3 WITH L43,LENGTH4 WITH L44,NEARH WITH H4
H5=H4-H31 &&控制高度
H5=STR(H5,6,1)
H5=ALLTRIM(H5)
L5=STR(L4,6,1)
L5=ALLTRIM(L5)
IF H3>=H4
MES="且通道被穿刺,控高"+H5+"米或调整位置。"
ELSE
MES="注意控高,"+H5+"米以下安全。"
ENDIF
IF A1>0.AND.A2>0
MES="通道穿越而过,"+MES
ELSE
IF L4<=0
MES="超过通道边沿,"+MES
ELSE
MES="距通道"+L5+"米,通道安全,无需控高。"
ENDIF
IF L4>1000
MES=MES+"请核对输入参数。"
ENDIF
ENDIF
IF MAX(X41,X42,X43,X44)>MAX(X1,X2).OR.MIN(X41,X42,X43,X44)<MIN(X1,X2)
MES="在通道两端外,通道安全,无需控高。请核对输入参数。"
ENDIF
REPLACE CONCLUSION WITH MES
USE
DO FORM OUTPUT &&调用输出程序
READ EVENTS
ENDDO
ENDDO
RETURN
- 微波通道穿刺模型研究(五)
- 微波通道穿刺模型研究(一)
- 微波通道穿刺模型研究(二)
- 微波通道穿刺模型研究(三)
- 微波通道穿刺模型研究(四)
- (五) 通道之间的数据传输
- 市场研究中的数据分析知识整理 (五)-线性模型拓展
- (二)、WCF通道模型
- 研究心得之五:方法或模型的适用性
- 搜索引擎算法研究(五)
- 怎样做研究(五)
- JAVA多线程研究(五)
- Java NIO系列教程(五) 通道之间的数据传输
- Java NIO系列教程(五) 通道之间的数据传输
- Java NIO系列教程(五) 通道之间的数据传输
- Java NIO系列教程(五) 通道之间的数据传输
- Java NIO系列教程(五) 通道之间的数据传输
- Java NIO系列教程(五) 通道之间的数据传输
- usaco Hamming Codes
- mongo无法正常认证登录
- rxjava异步框架源码解析
- 4.图的基本概念
- format()函数详解
- 微波通道穿刺模型研究(五)
- 使用swiper写的m站横向滑动效果
- 深度学习下的电商商品推荐
- Java内存泄露监控工具:JVM监控工具介绍
- RTK基准站的启动——利用CORS网络获取基站启动坐标
- Maven常用命令
- unity 一些小笔记 持续更新
- picasso图片框架源码解析
- js取一定范围内的随机整数