星座表示


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)となる。      

マウスイベント