日時計に引く不定時法の刻
江戸の時刻は、明け六つから暮れ六つまでを 6 等分して数えた。東京の水平な日時計にこの刻を引くと、日の出と日の入りで割ったときにはほぼまっすぐだった線が、江戸の決め方では弓なりに曲がる。夜明の明るさを待つ時間が季節で変わるためで、1 年を通して同じ時間だけ外で割ると、線はまっすぐに戻った。
なにか
江戸時代の時刻は不定時法で、夜明を明け六つ、日暮を暮れ六つと呼び、そのあいだの昼と、残りの夜をそれぞれ 6 等分した。昼の刻は明け六つ・五つ・四つ・九つ(正午)・八つ・七つ・暮れ六つと進む。国立天文台 暦計算室の暦 Wiki によると、夜明と日暮は太陽の中心が地平線の下 7°21′40″ に来る時刻と定めていて、寛政暦の考え方に基づく。それより前は日の出の二刻半(36 分)前と日の入りの二刻半後に固定していた。
刻は季節で伸び縮みするが、日時計の影は太陽そのものの位置を映すので、影で読める。そこで、平らな盤の上に立てた棒の先(高さ h)が落とす影の先を、2026 年の東京で 1 年ぶん追った。場所は国立天文台の「各地のこよみ」の東京と同じ緯度 35.6581°・経度 139.7414° にした。
模型
太陽の赤緯を δ、時角を H、緯度を φ と置く。棒の先の影は、真下の点から東へ h cos δ sin H / a、北へ h (sin φ cos δ cos H − cos φ sin δ) / a の所に来る。a = sin φ sin δ + cos φ cos δ cos H は太陽の高度の正弦である。日付を使わず、赤緯と時角だけで決まるこの式を「赤緯の式」と呼ぶ。
もう 1 つの「日付の計算」では、2026 年の日付と日本標準時の時刻から、NOAA の太陽計算の表計算の式で太陽の高度と方位を出し、影の先を求めた。式は J. Meeus の『Astronomical Algorithms』に基づくと NOAA が書いている。明け六つと暮れ六つは、高度が −7°21′40″ になる時刻を二分法で探した。大気で光が曲がる分は入れていない。日付の計算で出した日の出・日の入り・南中を国立天文台の東京の表(365 日・分単位)と比べると、差は最大 0.64 分・0.59 分・0.51 分で、どれも 1 分に届かなかった。
時計の時刻線はまっすぐ、季節の線は双曲線
見立ての 1 つ目は、時計の時刻(真太陽時)の線は 1 点を通る直線で、正午の線からの角は tan θ = sin φ tan H になる、だった。その 1 点は、棒の先を通り地軸と平行な線が盤に刺さる所で、棒の真下から南へ h / tan φ 離れている。13〜17 時の角は 8.88°・18.60°・30.24°・45.28°・65.31° になった。日付の計算で毎日の影の先から測った角との差は 3×10⁻¹⁰° 以内で、当たりである。
2 つ目は、1 日の影の先がたどる季節の線は双曲線で、離心率は e = cos φ / sin|δ| になる、だった。夏至と冬至の日に 5 分ごとの影の先へ二次曲線をあてはめると、離心率は 2.0428 と 2.0428 で、式の 2.0427 と 2.0428 に重なった。これも当たりである。二十四節気では、夏至と冬至の 2.04 から 2.11・2.36・2.89・4.09・7.89 と開いていく。春分と秋分だけは離心率が無限大の直線で、真下から北へ h tan φ = 0.7175 h の所を東西に走る。
刻の線は曲がる
3 つ目の見立ては、刻の線もほぼまっすぐになる、だった。刻の線の曲がりは、冬至と夏至の端を結ぶ弦から線がいちばん離れる距離を、弦の長さで割って測った。日の出と日の入り(太陽の中心が地平線)で割ると、五つの線で 0.15%、四つで 0.07% しか曲がらない。ここまでは当たりだった。
江戸の決め方、伏角 7°21′40″ で割ると、五つの線は 2.91%、四つは 0.78% 曲がった。弦の長さ 4.003 h に対して、真ん中が 0.116 h ふくらむ。棒の高さを 10 cm にすると、長さ 40 cm の線が 1.2 cm 弓なりになる。江戸の刻については、見立ては外れた。七つと八つは五つと四つを正午の線で折り返した形で、九つは正午の線に重なる。
寛政暦より前の決め方、日の出と日の入りの 36 分前・後で割ると、五つは 0.36%、四つは 0.11% とほぼまっすぐに戻った。日の出は、国立天文台の表と同じく太陽の上辺が地平線に来る時刻とし、高度 −0.833° で近づけた。伏角だけを 0° から動かすと、五つの線がいちばんまっすぐになるのは伏角 0.086°、四つは 0.155° だった。
曲がるのは、夜明を待つ時間が季節で変わるから
伏角 0° の日の出から明け六つまでの時間は、冬至で 40.49 分、赤緯 0° で 36.29 分、夏至で 43.01 分と変わる。いちばん短いのは赤緯 −2.15° のときの 36.25 分だった。日付の計算で毎日の朝を数えると、2026 年 3 月 15 日の 36.22 分と 9 月 29 日の 36.27 分がいちばん短い。これが二刻半の 36 分とほとんど同じ長さなのは、計算して気づいた。
刻の線の曲がりがこの伸び縮みから来るなら、1 年を通して同じ時間だけ外で割れば線はまっすぐに戻るはずである。1 年の平均の 38.9 分(時角 9.72°)だけ伏角 0° の日の出入りの外で割ると、五つの曲がりは 0.17% になった。日の出と日の入りで割ったときの 0.15% と同じくらいで、見立てどおりだった。
昼の一刻の長さは、夏至で 2 時間 38.5 分、冬至で 1 時間 49.4 分になった。夜の一刻は夏至で 81.5 分、冬至で 130.6 分である。
赤緯の式と日付の計算を比べる
刻の線は、赤緯の式では赤緯を −23.44° から 23.44° まで 400 に刻んで引いた。日付の計算では、2026 年の 365 日それぞれで明け六つと暮れ六つを探し、6 等分した時刻の影の先を求めた。同じ赤緯で比べると、影の先の位置の差は最大 0.0061 h だった。1 日のうちにも赤緯と均時差が少しずつ動く分である。九つの影の先は、正午の線から最大 0.0017 h しか外れなかった。日付の計算の点は 1 年に 2 回同じ赤緯を通る。赤緯が増えていく 181 日の点だけで五つの曲がりを測ると 3.04%、減っていく 184 日では 2.78% で、赤緯の式の 2.91% はそのあいだに入った。
機械で分かる範囲と、目でしか分からない範囲
機械で確かめたのは、時刻線の角と季節の線の離心率が 2 通りの計算で一致すること、刻の線の曲がりの大きさと、曲がりが夜明の決め方で変わること、昼と夜の一刻の長さである。太陽の位置の式は国立天文台の表と比べた。
実物の日時計で影の先を読むと、太陽の大きさで影の縁がぼけ、1.2 cm の弓なりが見分けられるかは盤の大きさと読み方による。そこは試していない。
どう作ったか
生成器は generators/sundial.js で、NOAA の表計算の式を 1 行ずつ移した。ユリウス日も表計算と同じ手順で、2026 年 1 月 1 日を日付の通し番号 46023 として出した。季節の線の離心率は、一般の二次曲線を点列にあてはめる最小二乗(係数の長さを 1 にして残差の最小を固有ベクトルで出す)で求めた。盤の絵は、冬至と夏至の季節の線のあいだに刻の線と時刻線を引いたもので、実在の日時計や和時計の意匠は写していない。
確かめていないこと。江戸時代の日時計に不定時法の刻の線がどう引かれていたかは調べていない。寛政暦がなぜ 7°21′40″ を選んだかも調べていない。二刻半より前の決め方で日の出をどう定めていたかは分からないので、国立天文台の表と同じ定義を借りた。
出典
- 不定時法と夜明・日暮
- 国立天文台 暦計算室「暦Wiki/薄明/夜明と日暮」(2026-03-23 更新)。夜明(明六つ)と日暮(暮六つ)は太陽の中心の伏角が 7°21′40″ になる時刻であること、昼と夜をそれぞれ 6 等分すること、寛政暦の考え方に基づくこと、それまでは日の出の二刻半前・日の入りの二刻半後で、二刻半は 36 分であることを読んだ
- 太陽の位置
- NOAA Global Monitoring Laboratory「Solar Calculation Details」と表計算 NOAA_Solar_Calculations_day(J. Meeus『Astronomical Algorithms』に基づくと明記)。黄道傾斜 23°26′21.448″ − 46.815″T ほか、赤緯・均時差・時角・天頂角・方位の式をこの表計算から読んだ。2026 年 6 月 21 日の黄道傾斜は 23.4381° になる
- 比べた表
- 国立天文台 暦計算室「各地のこよみ 東京(東京都)」の 2026 年 1〜12 月の日の出入り・南中の表。出入りは太陽の上辺が地平線に一致する時刻と注記されている
- 数理
- 影の先の位置、時刻線の角 tan θ = sin φ tan H、季節の線の離心率 cos φ / sin|δ| は、太陽の向きと平面の交わりから自分で導き、数値で確かめた
- 親戚
- サイクロイド・コーヒーカップの光・対数螺旋
- 生成
- generators/sundial.js(sundial.svg 2 枚の盤・sundial-book.svg 帳簿)。国立天文台の表は generators/data/sundial/naoj-tokyo-2026.json に写した