星座表示
1)星座ファイル作成 ○○○.csv
T:\Lanuser\Proken\Sak\Prog\Atlas\Const\sss.txt
をExcelで開く。(カンマ区切り)
メシエ天体を追加する。
A・・・天体名(右3文字は星座略号)
B・・・赤経 (上2ケタは時,下3ケタは分)
C・・・赤緯 (上2ケタは度,下2ケタは分)
D・・・等級
E・・・スペクトル型(OBAFGKM・・・)
F・・・固有名(ほとんど空欄)
A列の右3文字をとってG列とする。 G1は =right(A1,3)
これらをG列をもとに整列すると星座ごとに分類できる。
星座ごとに区切って保存する。名前は星座略号,拡張子はcsv。 And.csv〜Vol.csv
2)星座名対照ファイル作成
T:\Lanuser\Proken\Sak\Prog\Atlas\Const\table.txt
umaleo以下を削除する。星座略号と星座名が88組。
上記csvファイルと同じフォルダーに保存。
3)星座名対照ファイルの読み込み
Open App.Pth を使って table.txtを読み込み2つの配列ryakugou,namaeに格納し,namaeを
リストボックスに表示させる。・・・・これらのコードはForm_Loadに書く。
Dim ryakugou(88) As String
Dim namae(88) As String が必要。
4)星座ファイルの読み込み赤経・赤緯を加工再定義
Open App.Pth を使って 各csvファイルを読み込み7つの配列a,b,c,d,e,f,gに格納する。
・・・・これらのコードはList1_Clickに書く。Dim文に注意a,e,f,gはStringで,b,c,dはSingleである。
★赤経の場合 ●●○○.○
●●を取り出すには b1=fix(b(i)/100)
○○.○を取り出すには b2=b(i)−b1*100
b(i)を再定義 b(i)=(b1+b2/60)*15 ・・・・615.0は最終的に90.25(角度単位)となる。
★赤緯の場合 △●●○○
●●を取り出すには c1=fix(c(i)/100)
○○.○を取り出すには c2=c(i)−c1*100
c(i)を再定義 c(i)=c1+c2/60 ・・・・△が空白の場合
c(i)=c1−c2/60 ・・・・△が-の場合
-1615.0は最終的に-16.25(角度単位)となる。
5)等級・スペクトル型
等級値が小さいほど明るいので大きな半径の円で表す。
r(i)=(6-d(i))/8 くらいが適当
スペクトル型は色を表す。e(i)の最初の文字によって
O・・・青 B・・・水色 A・・・白 F・・・淡白 G・・・黄 K・・・オレンジ M・・・赤
N・・・緑 その他・・・灰色
Select Case 文を使い,配列col(i)に納める。色はRGB(r,g,b)で定義してもよいがシェイプを
8つ並べてその背景色で表す方が便利である。
・・・・これらのコードもList1_Clickに続けて書く。
6)位置の計算とプロット
各星座の中心が画面の中心に位置するように,各星座ごとにb(i),c(i)の平均mb,mcを求めて
px(i)=mb-b(i)*cos(c(i)*rad)
py(i)=c(i)-mc
をフォームにプロットする。Circle(px(i),py(i)),r(i),col(i) を天体の数だけ繰り返す。
7)注意
配列宣言 においてr,px,pyはSingleでcolはLongである。
radはconstで定義する。
座標はScale文で定義する。Scale(-10,10)-(10,-10) とするとFormの左上の点が(-10,10)で,
右下の点が(10,−10)となる。