--- title: "星空の「見え方」を計算で描く — ずんだーの天体カードの中身" description: "「今夜・西北西の低い空」。天体イベントの見え方カードを、Discord Bot がどう計算して描いているか。沼と暴走の過程を書きました。" url: https://ryuuneko.com/blog/zunda-mikae published: 2026-06-17 18:27:47.459559 updated: 2026-06-18 05:27:08.372297 --- ずんだーという趣味のDiscord Botに、天体イベントを知らせる「おまけ機能」があります。満月や流星群、惑星の接近を、その夜の **見え方カード**(かんたんな星空図)付きでお知らせするものです。 [別の記事](/blog/zunda-omake-roman)で機能全体のロマンを書きましたが、この記事はそのうち **「見え方カードをどう描いているか」** だけを、もう少しだけ細かく掘ります。完全に自己満足の世界です。 ## 「いつ・どの方角に見えるか」を出す 天体イベントで本当に知りたいのは、たぶん「いつ、空のどっちを見ればいいか」です。日付だけ言われても、当日の夜に「で、どっち向けばいいの?」となります。 天体の位置そのものは、計算すれば出ます。ただしそれは「宇宙のどこにあるか」であって、**あなたが立っている場所から見上げたときに、どの方角・どの高さに見えるか** とは別物です。前者から後者へは、観測する **時刻と場所** を使って座標を乗り換えます(黄道座標 → 赤道座標 → 地平座標、という変換です。用語は忘れてOKです)。 さらに、ただ変換するだけだと「昼間で見えない時刻」まで出てしまうので、夜のあいだ30分おきに時刻をためして、**空が十分に暗く・対象が地平線からしっかり上がっている** いちばん見やすい時間帯を選びます。こうして「今夜20時ごろ・西北西の低い空」という具体的な一言が出せるようになりました。 ![ずんだーの見え方カードの例。ペルセウス座流星群の放射点を、地平線つきの概略図に、色分けした方角ラベルと高さの目盛りで示している](/blog/uploads/zunda-astro-meteor-v3.webp) *▲ 見え方カードの例。「いつ・どの方角・どの高さに見えるか」を計算して、地平線つきの概略図にしています(方角は色分け、縦軸が高さ)。* ## 数字ではなく、人間の言葉に丸める 計算すると、方角や高さは「方位278.4度・高度11.7度」のように出ます。が、これを言われても空を見上げる役には立ちません。 なので **16方位**(西北西、など)と、高さは **「低い/中ほど/高い」の3段階** に丸めて見せます。精密さより「だいたいあっち」が分かることを優先しました。図のほうも、地平線と方角ラベルを置いただけの **概略図** で、精密な星図ではありません。 ## 47都道府県で描いたら、同じ絵が47枚できた ここで沼にはまります。「日本のどこから見るか」問題です。 北海道と沖縄では、同じ星でも見える方角・高さが少しずれます。律儀に47都道府県ぶんカードを描いてみたら——**ほとんど同じ絵が47枚** 並びました。地味に違うけど、ほぼ一緒。これは無駄だし、見るほうも47択から選ばされて困ります。 そこで、各県の見え方を「16方位+高さの段階」で **ひとつの符号** に変換して、同じ符号どうしをまとめました。 - 全国でほぼ同じ見え方なら → **共通の1枚**(地点を選ぶ必要なし) - 見え方が変わるイベントだけ → **観測地点を選べる**(実際に分かれた数枚だけ) あるとき「月と木星の接近」では、47都道府県が **3グループ** にまとまりました。47枚が3枚です。 ## 見えない場所では、正直に「見えません」と言う 地点をずらすと、その時刻には対象が **地平線の下** に沈んでいる地域も出てきます。 ここで「とりあえず図を描く」と、見えないのにそれっぽい絵が出て、嘘になります。なので、地平線の下なら **「この時間、○○では地平線の下で見えません」** とはっきり出すことにしました。見えないものを見えるように見せない——防災情報も扱うこのBotの、ささやかな筋の通し方です。 ## 月は、その日の満ち欠けで描く 月が出てくるイベントでは、月を **その日の月齢どおり**(三日月なら三日月、満月なら満月)に描きます。 満ち欠けは、明るい側の半円を描いて、その上に境界線となる楕円を重ねることで作っています。楕円の幅を変えると三日月から満月まで連続的に表現でき、満月は全部明るく・新月はほぼ影、という具合です。……と書くと簡単そうですが、最初は **満ちと欠けの向きが左右逆** に出ました。三日月が反対を向くのです。図を何枚も実際に描いて目で見比べ、向きを直しました。計算が合っていても、出てきた絵を見るまで安心できない、といういつものやつです。 ## ついでに、月を「目印」にする さらに、月が主役でないイベント(惑星の接近や流星群)でも、**月が空に出ていれば淡く「目印」として** そっと添えました。「あの月の少し右」と言えるだけで、対象がぐっと探しやすくなるからです。月が地平線の下にいるときは、邪魔なので描きません。 ![みずがめ座δ南流星群のカード。放射点の少し下に、淡い「月(目印)」が描かれている](/blog/uploads/zunda-astro-moonmark.webp) *▲ 流星群でも、月が出ていれば放射点のそばに淡く「月(目印)」を添えます。「あの月の少し上」で探せます。* この目印の月は、図の構図(中心の方角)にも、さっきの「見え方の符号」にも数えていません。あくまで添え物なので、これのせいで「47枚→3枚」のまとめ方が崩れないようにしています。 ## 画像は軽く カードの画像は、文字や線が主で平らな色が多いので、可逆圧縮のWebPにしました。見た目はそのままで、ファイルサイズはPNGよりだいぶ小さくなります。スマホでサッと開ける軽さは、おまけでも大事にしたいところです。 ## それで、なぜここまで 満月の日付を出すだけなら、ここまでの計算はいりません。見え方カードも、正直なくても機能はします。 でも、「いつ・どっちを向けばいいか」まで分かって初めて、人は実際に空を見上げる気になります。**機能が「ある」ことと、「使える」ことのあいだ** には、こういう地味な計算と、出た絵を目で確かめる手間が挟まっています。おまけにそこまでやるのは——まあ、ロマンだからです。 *(この記事の内容は執筆時点の実装です。細部は今後変わることがあります。位置・時刻は計算値で、実際の見え方は地域や天候により異なります。)*