中华农历论坛知识讨论区历法知识 → 回复帖子

  回复帖子
用户名:   *您没有注册?
密码:   *忘记论坛密码?    标题采用“回复:XXX....”
主题标题:  *不得超过 200 个汉字
当前心情
上一页 发帖表情 下一页
内容
高级设置: 签名: 回帖通知:
 

主题最新回顾(发布时间:2011/5/16 21:45:00)
--  作者:jyarmy
--  
以下是引用浪-淘-沙在2011-5-13 9:42:00的发言:

大气折射及太阳视面的共同作用。


 


当你眼睛看到太阳的顶面升出地面时。其实太阳的中心还在地面(地平线)之下15角分(不考虑大气折射)。


 


而大气折射,可以让地平线之下的东西提前35角分就被你看到了。



谢谢,终于明白了

主题最新回顾(发布时间:2011/5/13 9:42:00)
--  作者:浪-淘-沙
--  
以下是引用jyarmy在2011-5-13 6:49:00的发言:
为什么定义在地平线下50角分而不是0度呢?

大气折射及太阳视面的共同作用。

 

当你眼睛看到太阳的顶面升出地面时。其实太阳的中心还在地面(地平线)之下15角分(不考虑大气折射)。

 

而大气折射,可以让地平线之下的东西提前35角分就被你看到了。


主题最新回顾(发布时间:2011/5/13 6:49:00)
--  作者:jyarmy
--  
为什么定义在地平线下50角分而不是0度呢?

主题最新回顾(发布时间:2009/6/21 22:53:00)
--  作者:xjw01
--  

以上程序,2000年1月1日(T=0)至2000年1月30日(T=29)的计算结果,北京:

 

T=0 7:35:58
T=1 7:36:6
T=2 7:36:13
T=3 7:36:17
T=4 7:36:19
T=5 7:36:19
T=6 7:36:17
T=7 7:36:12
T=8 7:36:6
T=9 7:35:57
T=10 7:35:45
T=11 7:35:32
T=12 7:35:17
T=13 7:34:59
T=14 7:34:39
T=15 7:34:17
T=16 7:33:53
T=17 7:33:26
T=18 7:32:58
T=19 7:32:28
T=20 7:31:55
T=21 7:31:20
T=22 7:30:44
T=23 7:30:5
T=24 7:29:25
T=25 7:28:42
T=26 7:27:58
T=27 7:27:12
T=28 7:26:24
T=29 7:25:34


主题最新回顾(发布时间:2009/6/21 22:52:00)
--  作者:xjw01
--  

<script language=javascript>
/******************
太阳升起时间计算。xjw01,2009.6.21
******************/

//===============数学工具==================

function sin(x)  { return Math.sin(x);   }
function cos(x)  { return Math.cos(x);   }
function rad2rrad(v){//对超过-PI到PI的角度转为-PI到PI
  v=v % (2*Math.PI);
  if(v<=-Math.PI) return v+2*Math.PI;
  if(v>Math.PI) return v-2*Math.PI;
  return v;
}
function timeStr(jd){ //取儒略日数中的时间
 var T=jd+0.5;
 T=(T-Math.floor(T))*24;
 var h,m,s;
 h=Math.floor(T); T=(T-h)*60;
 m=Math.floor(T); T=(T-m)*60;
 s=Math.floor(T+0.5);
 return h+':'+m+':'+s;
}

var rad  = 180*3600/Math.PI;

//===============太阳升起==================

function sunLat(t){ //太阳黄经,t为儒略世纪数UT
  t += (32*(t+1.8)*(t+1.8)-20)/86400/36525;  //儒略世纪年数,力学时
  var J = 48950621.66 + 6283319653.318*t + 53*t*t - 994
   +334166 * cos( 4.669257+  628.307585*t)
   +  3489 * cos( 4.6261  + 1256.61517*t )
   +2060.6 * cos( 2.67823 +  628.307585*t ) * t;
 return J/10000000;
}

function sheng(jd,L,fa,TZ){ //jd儒略日平午,L地理经度,fa地理纬度,TZ时区,返回太阳升起时间
 jd-=TZ;
 var T=jd/36525;
 var J = sunLat(T), sinJ=sin(J), cosJ=cos(J); //太阳黄经以及它的正余弦值
 var gst = 2*Math.PI*(0.7790572732640 + 1.00273781191135448*jd) //恒星时(子午圈位置)
          + (0.014506 + 4612.15739966*T + 1.39667721*T*T)/rad;

 var E = (84381.4060 -46.836769*T)/rad; //黄赤交角

 var A=Math.atan2( sinJ*cos(E), cosJ); //太阳赤经
 var D=Math.asin ( sin(E)*sinJ );      //太阳赤纬
 var cosH0 = (sin(-50*60/rad) - sin(fa)*sin(D) ) / ( cos(fa)*cos(D) ); //日出的时角计算
 if(cosH0>=1||cosH0<=-1)  return 0;
 var H0 = -Math.acos( cosH0 ); //升点时角(日出)
 var H = gst-L-A; //太阳时角
 return jd - rad2rrad(H-H0)/6.28+TZ;
}

//===============测试代码==================

//北京的地标 -116°23' 纬度 + 39°54'

L = -(116+23/60)/180*Math.PI;
fa= +( 39+54/60)/180*Math.PI;

for(i=0;i<30;i++){ //计算30天测试
 T=i; //T从2000年1月1.5日起算
 T = sheng(T,L,fa,8/24);
 T = sheng(T,L,fa,8/24);
 document.write('T=' + i +' '+ timeStr(T) + '<br>');
}

</script>

[此贴子已经被作者于2009-6-22 8:36:13编辑过]

主题最新回顾(发布时间:2009/6/20 23:04:00)
--  作者:浪-淘-沙
--  

谢谢许兄提供日出日落的算法。

仔细看了二遍,算法的描述基本理解了。

如何将它用程序代码表示出来,我还得慢慢研究。


主题最新回顾(发布时间:2009/6/19 15:57:00)
--  作者:xjw01
--  如何计算天体的升降
您没有浏览该精华帖子的权限