论坛风格切换切换到宽版
  • 81475阅读
  • 237回复

安卓手机卫星跟踪APP——ZhuiXing——试用版发布 [复制链接]

上一主题 下一主题
离线BG5EIB
发帖
1682
只看该作者 80楼 发表于: 2016-12-04
好手艺
离线km883
只看该作者 81楼 发表于: 2017-02-06
强人,在用
离线BG6TSV
发帖
489
只看该作者 82楼 发表于: 2017-02-24
华为mate7,android6.0,第一次安装后运行闪退,SD卡上也没有生成那两个txt文件
呼号:BG6TSV
QQ:179869915
QTH:就不告诉你
离线bd4sug
发帖
383
只看该作者 83楼 发表于: 2017-08-03
   非常实用的软件。不过今天下来试用了一下,发现在经纬度和星历完全一样的情况下和Orbitron里显示的方位角和仰角相差很大,不知道是什么原因。
离线BI3OJW
发帖
256
只看该作者 84楼 发表于: 2017-09-25
回 bd4sug 的帖子
bd4sug:   非常实用的软件。不过今天下来试用了一下,发现在经纬度和星历完全一样的情况下和Orbitron里显示的方位角和仰角相差很大,不知道是什么原因。
 (2017-08-03 22:14) 

要是轨迹基本一样,有可能是电脑和手机时间不一样。
要是其他问题,可能是有bug,请提供一下测试用的星历和时间。

今年工作和家事多,没多少时间维护。抱歉。
离线BD7CE
发帖
1279
只看该作者 85楼 发表于: 2017-10-22
下载使用了,非常不错。提两个建议:1、本机位置最好不要录入,直接取GPS位置。2、能做成图形化界面甚至带AR功能就更好了。
73! DE BD7CE
离线BD7CE
发帖
1279
只看该作者 86楼 发表于: 2017-10-22
呃,结果好像是有问题,与IOS上的Satelite Tracker对比,位置偏差较大,可能正好差了90或180度,请检查一下公式。
73! DE BD7CE
离线付有才
发帖
59
只看该作者 87楼 发表于: 2017-10-29
解析软件出现问题,没法安装呢?
离线BI3OJW
发帖
256
只看该作者 88楼 发表于: 2017-11-02
回 BD7CE 的帖子
BD7CE:下载使用了,非常不错。提两个建议:1、本机位置最好不要录入,直接取GPS位置。2、能做成图形化界面甚至带AR功能就更好了。 (2017-10-22 20:40) 

感谢建议。本人也非专业程序员,很多功能还不会。以后有时间再学习、改进。
离线BI3OJW
发帖
256
只看该作者 89楼 发表于: 2017-11-02
回 BD7CE 的帖子
BD7CE:呃,结果好像是有问题,与IOS上的Satelite Tracker对比,位置偏差较大,可能正好差了90或180度,请检查一下公式。 (2017-10-22 21:51) 

感谢测试,确实是有问题。需要改进。
离线岛上闲人
发帖
1346
只看该作者 90楼 发表于: 2017-12-23
辛苦啦!
BD3PGZ
离线piper
发帖
44
只看该作者 91楼 发表于: 2018-04-09
唉,花了时间把帖子从头看到尾,一句话,佩服楼主!
离线bh6nsh
发帖
10
只看该作者 92楼 发表于: 2018-05-24
回 付有才 的帖子
付有才:
解析软件出现问题,没法安装呢?

首先是软件下载不完整 会出现

其次是安卓系统SDK版本低于软件的SDK版本
也就软件有最低版本系统要求  不支持
离线BI3OJW
发帖
256
只看该作者 93楼 发表于: 2018-08-03
原来的eclipse不能用了,平台一直配置不上。最近用E4A重写了一个。正在测试。
[ 此帖被BI3OJW在2018-08-03 17:23重新编辑 ]
离线BI3OJW
发帖
256
只看该作者 94楼 发表于: 2018-08-03
20180803 调试版_追星.zip (728 K) 下载次数:53
刚调试完成,烦请大家协助测试。后续功能有待增加。
使用E4A编程,有兴趣的朋友可以安装调试。压缩包内附有全部源码。
另有excel的计算方法,中文公式,简单易懂。也可以随意改编,扩展功能。

以下是核心部分源码:
函数 取儒略日(年 为 整数型, 月 为 整数型 , 日 为 整数型 ,时  为 整数型, 分 为 整数型 ,秒 为 整数型) 为 双精度小数型
    变量 参数A 为 整数型
    变量 参数B 为 整数型
    参数A = 取整(年 /100)
    参数B = 2-参数A+取整(参数A/4)
    取儒略日 = 取整(365.25*(年+4716))+取整(30.6001*(月+1))+日+参数B-1524.5 +((时-8)*3600+ 分*60 +秒)/24/3600    
结束 函数



过程 计算卫星位置()
    变量 年 为 整数型
    变量 确定平近点角的儒略日 为 双精度小数型
    变量 参数T 为 双精度小数型
    变量 恒星时 为 双精度小数型
    变量 春分圈地理经度 为 双精度小数型
    变量 卫星角速度 为 双精度小数型
    变量 半长轴 为 双精度小数型
    变量 近地点 为 双精度小数型
    变量 远地点 为 双精度小数型
    变量 过近地点儒略日 为 双精度小数型
    变量 过近地点当前时间差 为 双精度小数型
    变量 星历生成当前时间差 为 双精度小数型
    变量 近地点幅角变化率 为 双精度小数型
    变量 修正后的近地点幅角 为 双精度小数型
    变量 过近地点后所转圈数 为 双精度小数型
    变量 圈数取模 为 双精度小数型
    变量 实时平近点角 为 双精度小数型
    变量 Ek    为 双精度小数型
    变量 偏近点角 为 双精度小数型
    变量 轨道平面进动率    为 双精度小数型
    变量 卫星速度 为 双精度小数型
    变量 地心距离 为 双精度小数型
    变量 真近点角 为 双精度小数型
    '变量 X2    为 双精度小数型
    '变量 Y2    为 双精度小数型
    变量 卫星幅角 为 双精度小数型
    变量 参数J 为 双精度小数型
    变量 卫星旋转经度变量 为 双精度小数型
    变量 地心角    为 双精度小数型
    变量 卫星用户经度差    为 双精度小数型
    变量 纬度阈值 为 双精度小数型
    变量 L1    为 双精度小数型
    变量 方位角1 为 双精度小数型
    变量 方位角2 为 双精度小数型
    变量 多普勒系数 为 双精度小数型

    当前儒略日=取儒略日( 取年份(取现行时间()), 取月份(取现行时间()),取日(取现行时间()),取小时(取现行时间()),取分钟(取现行时间()),取秒(取现行时间()))+(上次更新时间%1000)/1000/3600/24
    年 = "20"& 取文本中间(星历1,18,2)
    确定平近点角的儒略日 = 取儒略日(年,1,1,32,0,0) + 确定平近点角的UTC时间%1000
    参数T =(确定平近点角的儒略日-2451545)/36525
    恒星时 =280.46061837+360.98564736629*(确定平近点角的儒略日-2451545)+0.000387933*参数T^2-参数T^3/38710000
    春分圈地理经度 = 360 - 恒星时 % 360
    卫星角速度 =每日绕行圈数*2*PI/24/3600
    半长轴 =(万有引力常数/卫星角速度/卫星角速度)^(1/3)
    近地点  = 半长轴*(1-轨道偏心率)-地球半径
    远地点  = 半长轴*(1+轨道偏心率)-地球半径
    过近地点儒略日  =确定平近点角的儒略日-指定历元的平近点角/360/每日绕行圈数
    过近地点当前时间差  = 当前儒略日 - 过近地点儒略日
    星历生成当前时间差  = 当前儒略日 - 确定平近点角的儒略日
    近地点幅角变化率    =4.97*(地球半径/半长轴)^3.5*(5*求余弦(轨道倾角/180*PI)^2-1)/(1-轨道偏心率^2)^2
    修正后的近地点幅角    =近地点幅角+近地点幅角变化率*星历生成当前时间差
    过近地点后所转圈数    =过近地点当前时间差 * 每日绕行圈数
    圈数取模    =过近地点后所转圈数 % 1
    实时平近点角    = 圈数取模 * 360
    Ek    =2* 求反正切(((1-轨道偏心率)/(1+轨道偏心率))^0.5*求正切(实时平近点角/2*PI/180))*180/PI
    偏近点角    =Ek-轨道偏心率*求正弦(Ek/180*PI)
    地心距离    =半长轴*(1-轨道偏心率*求余弦(Ek/180*PI))
    轨道平面进动率    =-9.95*(地球半径/地心距离)^3.5*求余弦(轨道倾角/180*PI)/(1-轨道偏心率^2)^2
    卫星速度    =(万有引力常数*(2/地心距离-1/半长轴))^0.5
    真近点角    =(2/PI*180*求反正切(((1+轨道偏心率)/(1-轨道偏心率))^0.5*求正切(Ek/180*PI/2))+360)%360

    卫星幅角    =(真近点角+修正后的近地点幅角)%360
    如果 卫星幅角 > 90 则
        如果 卫星幅角 > 180 则
            如果 卫星幅角> 270 则
                参数J =0
            否则
                参数J= -180
            结束 如果
        否则
            参数J =180
        结束 如果
    否则
        参数J=0
    结束 如果
    卫星旋转经度变量    =求反正切(求正切((卫星幅角)/180*PI)*求余弦(轨道倾角/180*PI))*180/PI+参数J
    
    卫星经度 = ((春分圈地理经度+升交点赤经+卫星旋转经度变量-星历生成当前时间差*(360.98563)+轨道平面进动率*星历生成当前时间差+180)%360+720)%360-180
    卫星纬度 =求反正弦(求正弦(轨道倾角/180*PI)*求正弦(卫星幅角/180*PI))*180/PI
    地心角    =求反余弦(求正弦(用户纬度/180*PI)*求正弦(卫星纬度/180*PI)+求余弦(用户纬度/180*PI)*求余弦(卫星纬度/180*PI)*求余弦(用户经度/180*PI-卫星经度/180*PI))
    卫星俯仰角 = 求反正切((地心距离*求余弦(地心角)-(地球半径+用户海拔))/地心距离/求正弦(地心角))*180/PI
    卫星用户经度差    =(卫星经度-用户经度+360)%360
    纬度阈值    =求余弦(卫星用户经度差/180*PI)*用户纬度
    L1    =求反余弦(求正弦(用户纬度/180*PI)*求正弦(卫星纬度/180*PI)+求余弦(用户纬度/180*PI)*求余弦(卫星纬度/180*PI)*求余弦(卫星用户经度差/180*PI))
    方位角1    =(求反正弦(求正弦(卫星用户经度差/180*PI)*求正弦((90-卫星纬度)/180*PI)/求正弦(L1))*180/PI+360)%360
    方位角2    =(540-方位角1)%360
    如果 卫星纬度 < 纬度阈值 则
        卫星方位角 = 方位角2
    否则
        卫星方位角=方位角1
    结束 如果
    当前距离=((地球半径+用户海拔) ^2 + 地心距离^2 - 2 * (地球半径+用户海拔) * 地心距离 * 求余弦(地心角))^0.5
    距移率=(当前距离-上次距离)/时间差*1000
    多普勒系数 = 300000000 / (300000000 + 距移率)
    下行频率修正 = 下行频率 * 多普勒系数
    上行频率修正 = 2 * 上行频率 - 上行频率 * 多普勒系数
    
    列表框1.清空项目()
    列表框1.添加项目("确定平近点角的UTC时间:"&确定平近点角的UTC时间)
    列表框1.添加项目("轨道倾角:" & 轨道倾角)
    列表框1.添加项目("升交点赤经:"&升交点赤经)
    列表框1.添加项目("轨道偏心率:"&轨道偏心率)
    列表框1.添加项目("近地点幅角:"&近地点幅角)
    列表框1.添加项目("指定历元的平近点角:"&指定历元的平近点角)
    列表框1.添加项目("每日绕行圈数:"&每日绕行圈数)
    列表框1.添加项目("年:" & 年)
    列表框1.添加项目("确定平近点角的儒略日:"&确定平近点角的儒略日)
    列表框1.添加项目("当前儒略日:"&当前儒略日)
    列表框1.添加项目("过近地点儒略日:"&过近地点儒略日)    
    列表框1.添加项目("恒星时:"&恒星时)
    列表框1.添加项目("春分圈地理经度:"&春分圈地理经度)
    列表框1.添加项目("卫星角速度:"&卫星角速度)
    列表框1.添加项目("半长轴:"&半长轴)
    列表框1.添加项目("近地点:"&近地点)
    列表框1.添加项目("远地点:"&远地点)
    列表框1.添加项目("过近地点当前时间差:"&过近地点当前时间差)
    列表框1.添加项目("星历生成当前时间差:"&星历生成当前时间差)
    列表框1.添加项目("近地点幅角变化率:"&近地点幅角变化率)
    列表框1.添加项目("修正后的近地点幅角:"&修正后的近地点幅角)
    列表框1.添加项目("过近地点后所转圈数:"&过近地点后所转圈数)
    列表框1.添加项目("圈数取模:"&圈数取模)
    列表框1.添加项目("实时平近点角:"&实时平近点角)
    列表框1.添加项目("Ek:"&Ek)
    列表框1.添加项目("偏近点角:"&偏近点角)
    列表框1.添加项目("地心距离:"&地心距离)
    列表框1.添加项目("轨道平面进动率:"&轨道平面进动率)
    列表框1.添加项目("卫星速度:"&卫星速度)
    列表框1.添加项目("真近点角:"&真近点角)
    列表框1.添加项目("卫星幅角:"&卫星幅角)
    列表框1.添加项目("参数J:"&参数J)
    列表框1.添加项目("卫星旋转经度变量:"&卫星旋转经度变量)
    列表框1.添加项目("地心角:"&地心角)
    列表框1.添加项目("卫星用户经度差:"&卫星用户经度差)
    列表框1.添加项目("纬度阈值:"&纬度阈值)
    列表框1.添加项目("L1:"&L1)
    列表框1.添加项目("方位角1:"&方位角1)
    列表框1.添加项目("方位角2:"&方位角2)
    列表框1.添加项目("当前距离:"&当前距离)
    列表框1.添加项目("上次距离:"&上次距离)
    列表框1.添加项目("时间差:"&时间差)    
    列表框1.添加项目("距移率:"&距移率)
    列表框1.添加项目("磁偏角:"&磁偏角)
    列表框1.添加项目("用户经度:"&用户经度)
    列表框1.添加项目("用户纬度"&用户纬度)
    列表框1.添加项目("用户海拔:"&用户海拔)
结束 过程

过程 结果输出()
    变量 X 为 整数型
    变量 Y 为 整数型
    X =取整(卫星方位角 - 手机方位角)
    如果 X < -180 则
        X=X+360
    结束 如果
    如果 X>180 则
        X=X-360
    结束 如果
    
    X=(X+152)/304* 画板1.宽度
    Y=取整(手机俯仰角-卫星俯仰角)
    Y=(Y+100)/200*画板1.高度
    画板1.清空()
    '画板1.画笔类型=1
    '画板1.画圆(X,Y,40)
    画板1.画图片缩放("sat.jpg",X-72,Y-52,144,104)
    画板1.画笔粗细=4
    画板1.画笔类型=2
    画板1.画圆(画板1.宽度/2,画板1.高度/2,50)
    画板1.画直线(画板1.宽度*0.25,画板1.高度*0.5,画板1.宽度*0.75,画板1.高度*0.5)
    画板1.画直线(画板1.宽度*0.5,画板1.高度*0.3,画板1.宽度*0.5,画板1.高度*0.7)
    
    丰富文本框1.内容 =  "当前时间:"& 取现行时间文本(":")
    丰富文本框1.内容 = 丰富文本框1.内容 & "\n手机方位角:"& 取整( 手机方位角)
    丰富文本框1.内容 = 丰富文本框1.内容 & "   手机俯仰角:"& 取整( 手机俯仰角)
    丰富文本框1.内容 = 丰富文本框1.内容 & "\n卫星方位角:"& 取整( 卫星方位角)
    丰富文本框1.内容 = 丰富文本框1.内容 & "   卫星俯仰角:"& 取整( 卫星俯仰角)
    丰富文本框1.内容 = 丰富文本框1.内容 & "\n卫星经    度:"& 取整( 卫星经度)
    丰富文本框1.内容 = 丰富文本框1.内容 & "   卫星纬    度:"& 取整( 卫星纬度)
    丰富文本框1.内容 = 丰富文本框1.内容 & "\n上 行 频 率:"& 取整(上行频率修正*10000)/10000
    丰富文本框1.内容 = 丰富文本框1.内容 & "   下 行 频 率:"& 取整(下行频率修正*10000)/10000
    
    
    
结束 过程
离线bd7jnn
发帖
340
只看该作者 95楼 发表于: 2018-08-03
厉害!
离线bg6lqv
发帖
176
只看该作者 96楼 发表于: 2018-08-04
厉害厉害,感谢共享!开源更让人钦佩!
呼号:BG6LQV
设备:Yeasu FT-817 FT857D  FT920 AOR5000  Hackrf ONE  Airspy mini  RTL2832
天线:  HF+6m:Moxon   YP3    3波段蛛网
       70cm:4x13 ele DK7ZB's YAGI  10圈 Helical Antenna
       1.8米 网状抛物面天线 +1.2GHz 1.7GHz 螺旋馈源 + 2.3GHz 3.4GHz 5.7GHz OK1DFC 馈源 10GHz LNB
QTH:河南省南阳市
离线BA7CK
发帖
75993
只看该作者 97楼 发表于: 2018-08-04
陈清澈
http://ba7ck.taobao.com
幺 8 勾拐 3 幺 5 2 洞6 幺
离线BI3OJW
发帖
256
只看该作者 98楼 发表于: 2018-08-05
更新了卫星过境预报功能。初测基本正常。

重新了计算部分。原来易安卓里,调用其他窗口的过程,必须把过程写在公用模块里。
20180805.zip (1216 K) 下载次数:37

模块化了之后,大家可以自己试着开发。
下载安装易安卓之后,直接打开源文件就可以了。
以下是公用模块的源码:

'过程输入,调用计算模块前需赋值
静态 变量 星历0 为 文本型
静态 变量 星历1 为 文本型
静态 变量 星历2 为 文本型
静态 变量 磁偏角 为 双精度小数型
静态 变量 用户经度 为 双精度小数型
静态 变量 用户纬度 为 双精度小数型
静态 变量 用户海拔 为 双精度小数型    
静态 变量 计算时间 为 日期时间型
静态 变量 毫秒 为 整数型

'过程输出,计算后可以调用
静态 变量 卫星经度 为 双精度小数型
静态 变量 卫星纬度 为 双精度小数型
静态 变量 用户距离 为 双精度小数型
静态 变量 卫星方位角 为 双精度小数型
静态 变量 卫星俯仰角 为 双精度小数型

'过程中用到的参数
静态 变量 万有引力常数 为 双精度小数型 = 398603000000000
静态 变量 地球半径 为 双精度小数型 = 6378137
静态 变量 PI 为 双精度小数型 =3.14159265358979

静态 变量 轨道倾角 为 双精度小数型
静态 变量 升交点赤经 为 双精度小数型
静态 变量 轨道偏心率 为 双精度小数型
静态 变量 近地点幅角 为 双精度小数型
静态 变量 指定历元的平近点角 为 双精度小数型
静态 变量 每日绕行圈数 为 双精度小数型
静态 变量 确定平近点角的UTC时间 为  双精度小数型

静态 变量 当前儒略日 为 双精度小数型
静态 变量 年份 为 整数型
静态 变量 确定平近点角的儒略日 为 双精度小数型
静态 变量 参数T 为 双精度小数型
静态 变量 恒星时 为 双精度小数型
静态 变量 春分圈地理经度 为 双精度小数型
静态 变量 卫星角速度 为 双精度小数型
静态 变量 半长轴 为 双精度小数型
静态 变量 近地点 为 双精度小数型
静态 变量 远地点 为 双精度小数型
静态 变量 过近地点儒略日 为 双精度小数型
静态 变量 过近地点当前时间差 为 双精度小数型
静态 变量 星历生成当前时间差 为 双精度小数型
静态 变量 近地点幅角变化率 为 双精度小数型
静态 变量 修正后的近地点幅角 为 双精度小数型
静态 变量 过近地点后所转圈数 为 双精度小数型
静态 变量 圈数取模 为 双精度小数型
静态 变量 实时平近点角 为 双精度小数型
静态 变量 Ek 为 双精度小数型
静态 变量 偏近点角 为 双精度小数型
静态 变量 轨道平面进动率 为 双精度小数型
静态 变量 卫星速度 为 双精度小数型
静态 变量 真近点角 为 双精度小数型
静态 变量 地心距离 为 双精度小数型
静态 变量 卫星幅角 为 双精度小数型
静态 变量 参数J 为 双精度小数型
静态 变量 卫星旋转经度变量 为 双精度小数型
静态 变量 地心角 为 双精度小数型
静态 变量 卫星用户经度差 为 双精度小数型
静态 变量 纬度阈值 为 双精度小数型
静态 变量 L1 为 双精度小数型
静态 变量 方位角1 为 双精度小数型
静态 变量 方位角2 为 双精度小数型

静态 函数 取儒略日(年 为 整数型, 月 为 整数型 , 日 为 整数型 ,时  为 整数型, 分 为 整数型 ,秒 为 整数型) 为 双精度小数型
    变量 参数A 为 整数型
    变量 参数B 为 整数型
    参数A = 取整(年 /100)
    参数B = 2-参数A+取整(参数A/4)
    取儒略日 = 取整(365.25*(年+4716))+取整(30.6001*(月+1))+日+参数B-1524.5 +((时-8)*3600+ 分*60 +秒)/24/3600    
结束 函数

静态 过程 计算()'在其他窗口代码中的调用方法为:公用模块.计算()
    万有引力常数 = 398603000000000
    地球半径 = 6378137
    PI =3.14159265358979
    轨道倾角 =取文本中间(星历2,8,8)
    升交点赤经 =取文本中间(星历2,17,8)
    轨道偏心率 ="0."&取文本中间(星历2,26,7)
    近地点幅角 =取文本中间(星历2,34,8)
    指定历元的平近点角 =取文本中间(星历2,43,8)
    每日绕行圈数 = 取文本中间(星历2,52,11)
    确定平近点角的UTC时间 =取文本中间(星历1,18,14)

    当前儒略日=取儒略日( 取年份(计算时间), 取月份(计算时间),取日(计算时间),取小时(计算时间),取分钟(计算时间),取秒(计算时间))+(毫秒)/1000/3600/24
    年份 = "20"& 取文本中间(星历1,18,2)
    确定平近点角的儒略日 = 取儒略日(年份,1,1,32,0,0) + 确定平近点角的UTC时间%1000
    参数T =(确定平近点角的儒略日-2451545)/36525
    恒星时 =280.46061837+360.98564736629*(确定平近点角的儒略日-2451545)+0.000387933*参数T^2-参数T^3/38710000
    春分圈地理经度 = 360 - 恒星时 % 360
    卫星角速度 =每日绕行圈数*2*PI/24/3600
    半长轴 =(万有引力常数/卫星角速度/卫星角速度)^(1/3)
    近地点 = 半长轴*(1-轨道偏心率)-地球半径
    远地点 = 半长轴*(1+轨道偏心率)-地球半径
    过近地点儒略日 =确定平近点角的儒略日-指定历元的平近点角/360/每日绕行圈数
    过近地点当前时间差 = 当前儒略日 - 过近地点儒略日
    星历生成当前时间差 = 当前儒略日 - 确定平近点角的儒略日
    近地点幅角变化率 =4.97*(地球半径/半长轴)^3.5*(5*求余弦(轨道倾角/180*PI)^2-1)/(1-轨道偏心率^2)^2
    修正后的近地点幅角 =近地点幅角+近地点幅角变化率*星历生成当前时间差
    过近地点后所转圈数 =过近地点当前时间差 * 每日绕行圈数
    圈数取模 =过近地点后所转圈数 % 1
    实时平近点角 = 圈数取模 * 360
    Ek    =2* 求反正切(((1-轨道偏心率)/(1+轨道偏心率))^0.5*求正切(实时平近点角/2*PI/180))*180/PI
    偏近点角 =Ek-轨道偏心率*求正弦(Ek/180*PI)
    地心距离 =半长轴*(1-轨道偏心率*求余弦(Ek/180*PI))
    轨道平面进动率 =-9.95*(地球半径/地心距离)^3.5*求余弦(轨道倾角/180*PI)/(1-轨道偏心率^2)^2
    卫星速度 =(万有引力常数*(2/地心距离-1/半长轴))^0.5
    真近点角 =(2/PI*180*求反正切(((1+轨道偏心率)/(1-轨道偏心率))^0.5*求正切(Ek/180*PI/2))+360)%360
    卫星幅角 =(真近点角+修正后的近地点幅角)%360
    如果 卫星幅角 > 90 则
        如果 卫星幅角 > 180 则
            如果 卫星幅角> 270 则
                参数J =0
            否则
                参数J= -180
            结束 如果
        否则
            参数J =180
        结束 如果
    否则
        参数J=0
    结束 如果
    卫星旋转经度变量    =求反正切(求正切((卫星幅角)/180*PI)*求余弦(轨道倾角/180*PI))*180/PI+参数J
    卫星经度 = ((春分圈地理经度+升交点赤经+卫星旋转经度变量-星历生成当前时间差*(360.98563)+轨道平面进动率*星历生成当前时间差+180)%360+720)%360-180
    卫星纬度 =求反正弦(求正弦(轨道倾角/180*PI)*求正弦(卫星幅角/180*PI))*180/PI
    地心角    =求反余弦(求正弦(用户纬度/180*PI)*求正弦(卫星纬度/180*PI)+求余弦(用户纬度/180*PI)*求余弦(卫星纬度/180*PI)*求余弦(用户经度/180*PI-卫星经度/180*PI))
    卫星俯仰角 = 求反正切((地心距离*求余弦(地心角)-(地球半径+用户海拔))/地心距离/求正弦(地心角))*180/PI
    卫星用户经度差    =(卫星经度-用户经度+360)%360
    纬度阈值    =求余弦(卫星用户经度差/180*PI)*用户纬度
    L1    =求反余弦(求正弦(用户纬度/180*PI)*求正弦(卫星纬度/180*PI)+求余弦(用户纬度/180*PI)*求余弦(卫星纬度/180*PI)*求余弦(卫星用户经度差/180*PI))
    方位角1    =(求反正弦(求正弦(卫星用户经度差/180*PI)*求正弦((90-卫星纬度)/180*PI)/求正弦(L1))*180/PI+360)%360
    方位角2    =(540-方位角1)%360
    如果 卫星纬度 < 纬度阈值 则
        卫星方位角 = 方位角2
    否则
        卫星方位角=方位角1
    结束 如果

    用户距离=((地球半径+用户海拔) ^2 + 地心距离^2 - 2 * (地球半径+用户海拔) * 地心距离 * 求余弦(地心角))^0.5

结束 过程


[ 此帖被BI3OJW在2018-08-05 19:25重新编辑 ]
离线BG9AGZ
发帖
285
只看该作者 99楼 发表于: 2018-08-18
挺有意思的软件!