日晷的计算

             

  • 一根垂直地面的杆如何判断时间?(只能用顶点判断)

1. 水平日晷

预备知识 解三棱锥顶角

   常见的水平日晷如图 1 图 2 所示.把图片打印后,把直角三角形的底边垂直固定在半圆的 12 点方向,然后把半圆水平放于地面,12 点方向指向正北(地轴北)即可.此时三角形的斜边,也就是日晷的指针与地轴平行.太阳绕日晷指针以每小时 15°(一天 360°)的角速度匀速转动.

图
图 1:水平日晷(来自 Wikipedia)

   该类型日晷的一个画图网页见这里

图
图 2:北纬 30° 的日晷

   日晷圆盘上的刻度与所在纬度有关,若将其放在北极或南极,那么直角三角形的就变为一个和地面垂直的线段,且表盘上的刻度是均匀的.相反,若把这种日晷放在赤道上,那么三角形的斜边将会与 12 点的刻度共线,此时这种日晷将失效.

   刻度的具体计算并不复杂,公式为

\begin{equation} \beta = \tan^{-1}(\sin\alpha \tan \theta) \end{equation}
其中 $\beta$ 是表盘上某个刻度到 12 点刻度的夹角,$\theta$ 是太阳当前位置和 12 点位置关于地轴(指针)的夹角,$\alpha$ 是当地维度.可以验证在北极点处 $\alpha = \pi/2$ 时 $\beta = \phi$.

   证明:令式 6 中 $\theta_2 = \pi/2$,$\theta_1 = \theta$ 即可.表盘的中心就是三棱锥顶点.

   我们给出水平日晷的 Matlab 画图代码,结果类似图 2

代码 1:sunDial.m
alpha = pi/6; % 纬度
th = linspace(-pi/2, pi/2, 13);
beta = atan(sin(alpha).*tan(th));
th0 = linspace(-pi/2, pi/2, 1000);
figure; plot(cos(th0),sin(th0), 'k'); hold on;
for i = 1:13
    plot([0,cos(beta(i))], [0,sin(beta(i))], 'k');
end
axis equal; view(-90, 90);
axis([-0.1, 1.1, -1.1, 1.1]);

2. 赤道平面日晷

   另一种在任何纬度都适用的方案是让刻度盘始终与指针保持垂直,而指针始终平行于地轴.这种日晷的结构相对更复杂,但表盘上的刻度始终是均匀的,只需调整表盘与底座之间的夹角就能适用于不同纬度.

图
图 3:故宫的日晷(来自 Wikipedia)
致读者: 小时百科一直以来坚持所有内容免费无广告,这导致我们处于严重的亏损状态。 长此以往很可能会最终导致我们不得不选择会员制,大量广告,内容付费等。 因此,我们请求广大读者热心打赏 ,使网站得以健康发展。 如果看到这条信息的每位读者能慷慨打赏 10 元,我们一个星期内就能脱离亏损, 并保证网站能在接下来的一整年里向所有读者继续免费提供优质内容。 但遗憾的是只有不到 1% 的读者愿意捐款, 他们的付出帮助了 99% 的读者免费获取知识, 我们在此表示感谢。

         

© 小时科技 保留一切权利