cnzym 发表于 2011-8-28 14:52:10

太阳方位计算(可以当指南针)

本帖最后由 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)

后记
  突然发现可以用这个做日晷。
  欢迎提出意见。

imath 发表于 2011-8-28 15:17:13

jar格式,肿么没有apk格式?

cnzym 发表于 2011-8-28 15:31:06

没有apk的设备阿。
网上也许有

imath 发表于 2011-8-28 15:43:31

秒跳了

lch 发表于 2011-8-28 18:37:51

恩不错,话说图挂了

kzzs1 发表于 2012-2-1 13:48:48

“手机指南针.jar”很实用,坐公交车时可以预先计算哪些座位可以晒到或避免晒到太阳,睡懒觉时计算要睡到几点才能让太阳公公晒到屁股。:-)

NAT 发表于 2012-2-1 14:12:06

Ls的用途好特别...

魔法少年乔布斯 发表于 2013-3-3 11:04:15

这又是什么= =

5tuaner 发表于 2014-12-13 21:59:44

楼主,你的图片被百度和谐了!

hejiho-123 发表于 2016-1-29 21:21:24

非常不错的一个软件,值得学习

考L 发表于 2021-5-9 15:41:50

内部版?
页: [1]
查看完整版本: 太阳方位计算(可以当指南针)