太阳方位计算(可以当指南针)
本帖最后由 cnzym 于 2011-8-28 21:59 编辑更新
8.2821:55——修正一个太阳从西方升起的错误
前言
很早就在手机上装了一个“指南针”的java软件,能绘制出太阳在天球上的位置,计算曙暮光时间、日出日落时间以及太阳地平经纬度等诸多地球量。(下面有下载)
模仿这个java软件,我自己又编写了一个软件。
一周前我开始推导太阳赤纬与日期的关系、昼长与日期的关系等等等等一系列公式(条件是把地球当作正球体,公转轨道当作正圆,冬至一律按12月22日计算),花了我一周时间,sin cos tan 满纸飞,纠结了整整一周,重温了一遍《地理》必修①中学到的自然地理,用了许多还没学到和可能永远学不到的东西(什么极坐标与直角坐标互化、空间中的参数方程,还有什么地平坐标系、赤道坐标系等等)终于从理论层面研究出一套算法。
往计算器中打代码时,密密麻麻一大片,哪个变量是干什么的都忘了,总之把28个Alpha变量都用尽了,还用了4个列表数据。
测试时发现了许多诸如太阳从西方升起,北半球太阳在北方的诡异现象,均得到解决。
可能还有许多bugs,请发现者自行解决。
软件说明
输入日期、时间、经纬度坐标、时区即可计算日出日落时间和当地当时太阳地平经纬度,并绘制在天球上。
经度:东经+ 西经-
纬度:北纬+ 南纬-
时区:东区+ 西区-
精确度不是很高(日出日落时间误差在5~10min左右,太阳地平经纬度有0~3°左右误差),但大体准确(毕竟是理论上的算法)。东半球计算结果较精确,西半球误差相当雷人,呆在中国的同学大可无视。
本软件可以当指南针用,只要把计算器上的太阳对准天上的太阳(屏幕朝天),N指向的就是北方。
稍微修改一下可以画出太阳在天球上的轨迹。
普及一下我也不认识的英语:
Latitude 纬度
Longitude 经度
Azimuth 地平经度(太阳相对于正北顺时针转过的角度)
Altitude 地平纬度(即太阳高度角)
程序截图
http://hiphotos.baidu.com/cnzym2011/pic/item/a59179dd9673afb1a044df14.jpg
稍微修改一下,画出的8月27日,43°N 128°E太阳轨迹:
http://hiphotos.baidu.com/cnzym2011/pic/item/61edd83e52d28adbd1a2d314.jpg
在Google Earth中找到43°N 128°E,放平摄像机,让太阳在天上转一圈,就是这个效果。(吉林省敦化市大蒲柴河镇以北,靠近G201,这地方我路过过,有照片为证:Panoramio照片:《国道201——2008年9月拍摄》—42°59'12.54"N,128° 0'19.78"E)
后记
突然发现可以用这个做日晷。
欢迎提出意见。 jar格式,肿么没有apk格式? 没有apk的设备阿。
网上也许有 秒跳了 恩不错,话说图挂了 “手机指南针.jar”很实用,坐公交车时可以预先计算哪些座位可以晒到或避免晒到太阳,睡懒觉时计算要睡到几点才能让太阳公公晒到屁股。:-) Ls的用途好特别... 这又是什么= = 楼主,你的图片被百度和谐了! 非常不错的一个软件,值得学习 内部版?
页:
[1]