VB2010で、円形全天星図のJPEG画像をつくり、保存する。

その3 必要なプログラム要素 ←ひとつ前  つぎ→

 

必要なプログラム技術の要素はこんなところ

  1. 設定パラメータの選択画面
        日時、場所、等級の範囲、星座線、天の川、星名、星座名を描くか否か
  2. 画像をJPEG形式で描いて、保存
  3. 星と、星座線、天の川、星名、星座名のデータを、ファイルから取り込む
  4. 惑星の位置計算、座標変換

それぞれに、VB2010での implementation を確認する。


1.設定パラメータの選択

2. 画像をJPEG形式で描いて、保存(たったの1行!!!)

        PictureBOX を フォームに配置する( デフォルトで、PictureBox1 という名前になる)

   PictureBox1.Image.Save(ファイル名, System.Drawing.Imaging.ImageFormat.Jpeg)

   で、PictureBox1 にある画像を、JPEG形式で出力できる

   −−−−−−−−−−−−−

2.5 画像をPictureBOX に描きこむ

   PictureBOX にプロッター命令のような形で、画像を描きこむにはこうする

       Dim g As Graphics ' グラフィックオブジェクトを用意、これが基本
       Dim imObj As New Bitmap(1024, 1024) ' ビットマップを用意、ここでは 1024×1024 だけど、サイズは任意
       PictureBox1.Image = imObj ' PictureBOX1 のビットマップのサイズを確定

       g = Graphics.FromImage(PictureBox1.Image) ’Graphic の場所を PictureBox1 に設定

       g.Clear(Color.Blue)                 ' このへんが、プロッタ命令にあたるぶぶん

       g.DrawEllipse(Pens.BlanchedAlmond, flrect)  ' このへんが、プロッタ命令にあたるぶぶん

3.星と、星座線、天の川、星名、星座名のデータを、ファイルから取り込む

  ファイルからデータを入力するのは・・・

Private Sub ReadData(ByRef rd As Rectangle, ByVal g As Graphics)

Dim str As New System.IO.StreamReader("C:\test.csv", System.Text.Encoding.Default)
Dim strline As String
Dim strtemp() As String
Dim s As Rectangle

strline = str.ReadLine()
While (Len(strline) > 3)
strtemp = Split(strline, ",")
With rd
.X = Val(strtemp(0)) * 1000
.Y = Val(strtemp(1)) * 1000
.Width = Val(strtemp(2)) * 10
.Height = Val(strtemp(2)) * 10
End With

With s
.X = Rnd() * 1000
.Y = Rnd() * 1000
.Width = 10 + Rnd() * 3
.Height = .Width
End With

g.FillEllipse(Brushes.Black, s)
g.FillEllipse(Brushes.White, rd)
strline = str.ReadLine()
End While

str.Close()