今日の日付から太陽黄経を求めるには、以前の記事「プログラミング講座(60) ケプラーの第2法則」のように楕円軌道を考慮する必要がありますが、途中2つほど方程式を数値計算で解かなければなりません。和時計の文字盤はもともとそれほどの精度があるわけではないので、今回これまでのプランを変更し、地球が円軌道上を等速度で移動していると仮定して太陽黄経を求めることにしました。これなら日付と太陽黄経は単純な比例の関係になるので、計算はとても楽です。
そのようしてできた和時計の最終版を HRT547-3 として発行しました。
和時計の企画からこのひと月余りは計算の日々でした。三角関数やその逆関数には範囲の制約があり、プログラミングも結構簡単に行きませんでした。サブルーチンの計算結果を確かめるために、次のような工夫をしました。
(1) 電卓で計算してみる。
(2) 文献の計算結果との比較プログラムを作り、結果をテキストやグラフにして比較する。
(3) Excelシート上でも一連の計算を並行して行う。
3次元の天文やグラフィックスの計算は複雑になるんだということを実感したひと月でした。
ところで、和時計の文字盤についてですが、夜が下、昼が上になっています。午(うま)の刻が昼の真ん中です。午前・午後という言葉はこの頃の名残ですね。干支とともに九八七六五四という数字がありますが、江戸幕府が時を知らせる鐘を打った回数だそうです。午後のおやつ(八つ)だけは今も使われています。
さて、これまで1年、64回にわたりSmall Basicによるプログラミングについて学んできましたが、今回をもって休止しようと思います。今後は、少しレベルを上げてJavaによるプログラミングに挑戦してみる予定です。今回作ったSmall BasicのプログラムをJavaに移植しながら、さらにプログラミングやプログラミング言語について比較・探究していきます。
