プログラミング講座(63) 開発の順序、太陽黄経から明けと暮れを求める
和時計のプログラムの大きな流れをまとめてみると、
(1) 今日の日付から太陽黄経を求める。
(2) 太陽黄経から明け六つと暮れ六つを求める。
(3) 求めた明け六つ・暮れ六つを元に現在の時刻を不定時法の文字盤上に表示する。
ということになります。最初(1)から順番にプログラムを書いていったのですが、なかなか結果に結びつきませんでした。そこで前回から方針を変えて(3)から作るようにしました。したがって前回は明け六つと暮れ六つの時刻は求まったことにして(3)を作ったわけです。
プログラムを作る順番を変えることで、結果の画面を先に見ることができました。長い間、結果が見えないとなかなか苦しい思いをしますが、結果を先に見るような工夫は、プログラミングの励みにもなると思います。
さて、今回は(2)の部分を作りました。計算の方法は下図によります。これは立夏(太陽黄経45°)の例です。
【図66 太陽黄経から不定時法の時刻を求める(立夏の場合)】
作ったプログラムは HRT547-2 として発行しました。こちらは明日から芒種(太陽黄経75°)になるので、それに合わせました。前回のプログラムより昼がさらに長くなっていることに気づいていただけると思います。
なお、前回、『明け六つは日の出の30分くらい前、暮れ六つは日の入りの30分くらい後らしいので、そのように計算したい』と述べました。これは河出書房新社『図説 浮世絵に見る江戸の一日』を参考にしたのですが、今回、新人物往来社『暦の百科事典』の記述に基づき、±36分することにしました。天保暦で明け六つ、暮れ六つは日の出前、日没後の2.5刻(1日100刻制)としているそうです。角度でいうと30分が7.5°だったのに対し36分は9°になりました。プログラム中の rFactor いう変数がこれに当ります。
ということで、残るのは(1)の部分のみとなりました。
(つづく)
| 固定リンク
「Small Basic」カテゴリの記事
- プログラミング講座 (202) 1次元セルオートマトン(2020.09.20)
- プログラミング講座 (201) パラメーター(2020.09.14)
- プログラミング講座 (200) 3次ベジエ曲線(2020.09.14)
- プログラミング講座 (199) スーパー三角関数?(2020.09.02)
- プログラミング講座 (198) スーパー楕円(2020.09.01)
コメント