約25万6千個の恒星データを格納したDBを以前に作っています。
任意の赤経・赤緯を指定した場合の作図機能を持つViewerも作りました。

この旧Viewerで作られる図は天球に張り付いた恒星位置だけを示すものなので上が天の北極(赤緯90度)、下が天の南極(赤緯-90度)で、実際の星の見え方とは傾きが違います。
※赤道儀を使っているときは視野が図の上下左右方向に動くので便利です。


このViewerを改造して、観測地の緯度・経度日付時刻を入力して適切に計算すると、見え方と一致します。

10月31日20時30分のTB145(中心の赤丸)


同20時30分の夜空(ステラリウム参照)


11月01日03時のTB145


同03時の夜空(ステラリウム)


一致する仕組みは以下
1.DBから持ってきた恒星座標(赤経・赤緯)を天球にプロット
2.天球を極軸で適切に回転(観測地の経度と日付・時刻で回転角を決める)
3.天球を東西軸で適切に回転(観測地の緯度で回転角を決める)
4.視線方向を決める(夜空のどの方向を四角く切り取るか)
5.視線方向一定範囲にある恒星を天頂軸で方位角分回転(北の子午線上にのる)
6.さらに東西軸で高度分回転(図の中心が地平線真北になる)

感覚的にいうと、ボールを4回、軸を変えながら転がして、球面上のある1箇所が最初と最後で同じ位置(例えば真上)にきたとき、その1箇所は方向が変わっているということです。
各4回の操作は、軸と回転角で定義でき、最初と最後が一致するという条件のみですから単純です。

作図の際に、天頂方向と極軸方向の角度を求める、ということはいっさいしてこなかったので、計算式を質問されて困りました^^;
視点方向に仮想的に極軸方向単位ベクトルを置いて、上記の回転操作を行って内積をとる計算式を求めようと思ったのですが、予想以上に式が複雑で断念しました。