ICTメディア編集U 20251219

 

グラフィックスを用いたプログラムの作成 

グラフィックスメソッド

Visual Basicのプログラムにおいて,画面に図形を表示させたい場合には,線、四角形、円などの基本的な図形をDrawLineDrawRectangleFillRectangleDrawEllipseなどのグラフィックスメソッドを用いて描いていきます。

以前のVisual Basic 6.0のときのグラフィックスメソッドとは,名称も含めて,変わっていますので,注意が必要です.

以下に、代表的なグラフィックスメソッドについて,事象に基づき,解説していきます。

 

絵を表示する場所の設定:

 GDI+

Visual Basic.NETでは,グラフィック作成にGDI+Graphics Design Interface)を用います.これにより,描画イメージをオブジェクトとして操作できます.

オブジェクトとは,データとそれらの処理方法を含んだものを指しています.ボタンを押すと計算をするプログラムを作成したりしてきましたが,このボタンもオブジェクトといえます.

フォーム上に線などを描く場合には,グラフィックスオブジェクトを作成しておく必要があります.

例: Dim gr As Graphics = PictureBox1.CreateGraphics

(この例では,Picture Box1にグラフィックスオブジェクトとして,grという名のオブジェクトを作成しています.)

 

PictureBox

これまでに使用した「Button」や「Label」と同じようにツールボックスの中にPictureBoxをフォーム上に開いて場所を確保します.このPictureBox(ピクチャ ボックス)には、グラフィックス メソッドの出力や画像ファイルなども表示できます.

開いたPictureBoxにはプロパティをみるとわかるように「PictureBox1」などの名前が付きます.

PictureBoxのプロパティで「BackColor」はPictureBox画面の色を表します.

PictureBoxの大きさは,左上から右下の座標(Formの大きさのどこに位置するか)で決まります.

PictureBoxの図形を描くことのできる画面のサイズは,プロパティにある「Size」で指定でき,その中の「Height」,「Width」が高さと幅にあたります.

 

PictureBoxの座標が左の上が(0,0)の原点になり,右がx座標の値が大きくなり方向で,下がy座標の大きくなる方向です.

 

 

 

 

 

 

l  図形などをそのPictureBoxに表示させたいときは,先の例で示したグラフィックスオブジェクトのgrを指定し,ピリオドでつなげてグラフィックスメソッドを書きます.

例: Dim gr As Graphics = PictureBox1.CreateGraphics

(この例では,Picture Box1にグラフィックスオブジェクトとしてgrを作成しています.)

 

 

直線を描きたいとき:

DrawLineメソッド

DrawLine (Pens.Black, X1, Y1, X2, Y2)

Penオブジェクト:直線や色,幅,スタイルなどを決定するオブジェクト

X1, Y1:始点の X, Y座標

X2, Y2:終点のX, Y 座標

Pens.Blackの部分は,線のカラーで,BlackRedBlueGreenWhiteなど様々な色が指定できる.

Ø  **.DrawLine (Pens.Black, X1, Y1, X2, Y2) のように,グラフィックオブジェクト(**)のあとに,ピリオドでつなげて書く

 

例)

Dim gr As Graphics = PictureBox1.CreateGraphics

 

'(0,0)-(100,100)に、幅1の黒い線を引く

gr.DrawLine(Pens.Black, 0, 0, 100, 100)

 

 

四角形を描きたいとき:

DrawRectangleメソッド

DrawRectanglePen.Black, X1, Y1, W, H)

Penオブジェクト:直線や色,幅,スタイルなどを決定するオブジェクト

X1:左端位置,Y1:上端位置,

W:幅,H:高さ

Ø   **.DrawRectanglePen.Black, X1, Y1, W, H) のように,グラフィックオブジェクト(**)のあとに,ピリオドでつなげて書く

 

例)

Dim gr As Graphics = PictureBox1.CreateGraphics

 

'(100,100)の位置に幅20高さ20の青い四角を描く

gr.DrawRectangle(Pens.Blue, 100, 100, 20, 20)

 

 

FillRectangleメソッド

FillRectangleBrushes.Black, X1, Y1, W, H)

Brushオブジェクト:四角形や楕円などの内部を塗りつぶすときに使用するオブジェクト

X1:左端位置,Y1:上端位置,

W:幅,H:高さ

Ø    **.FillRectangleBrushes.Black, X1, Y1, W, H) のように,グラフィックオブジェクト(**)のあとに,ピリオドでつなげて書く

 

例)

Dim gr As Graphics = PictureBox1.CreateGraphics

 

'(120,120)の位置に幅20高さ20の金色の塗りつぶしの四角を描く

gr.FillRectangle(Brushes.Gold, 120, 120, 20, 20)

 

 

円,楕円を描きたいとき:

DrawEllipseメソッド

DrawEllipsePens.Black, X1, Y1, W, H)

Penオブジェクト:直線や色,幅,スタイルなどを決定するオブジェクト

X1:左端位置,Y1:上端位置,W:幅,H:高さ

(上記のX1Y1WHで指定される四角形に外接する円,または楕円を書くことができる.)

Ø     **.DrawEllipsePens.Black, X1, Y1, W, H) のように,グラフィックオブジェクト(**)のあとに,ピリオドでつなげて書く

 

例)

Dim gr As Graphics = PictureBox1.CreateGraphics

 

'(100,50)の位置にある幅10高さ10の四角に外接する赤色の円を描く

gr.DrawEllipse(Pens.Red, 100, 50, 10, 10)

 

 

線の太さ,色を変えたいとき:

Penオブジェクト

線の太さや色などをPenオブジェクトで宣言することも可能である

Pens.Blackなどの部分に,宣言したオプジェクトを入れればよい.

PenColor.***, W)

Color:色を決定する.***部分に色の名称が入る.

W:線の太さ

Ø     以下の例のようにPenオブジェクトとして宣言し,使用したい図形命令などで,使用する.

 

例)

Dim p As New Pen(Color.Gray, 5)

'(100,0)-(0,100)に、幅5の灰色の線を引く

gr.DrawLine(p, 100, 0, 0, 100)

 

 

画面の消去をしたいとき:

PictureBoxImageプロパティ(Nothingキーワード)

PictureBox内の図形や画像などを消去する.

 

例)PictureBox1.Image = Nothing

 

 

 

演 習:グラフィックスメソッドを用いたプログラムの作成

1) これまでと同様にまず, Visual Basic.NETを立ち上げ, 新しいプロジェクトを開き(名前は「grtest1」)、フォームの適当な位置に PictureBoxを1つ作り、PictureBoxのプロパティウインドウでBackColorを変えてみる.

 

2)Button を1つ作成し、ボタンをクリックし,以下のコードを書き、実行してみる。

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

 

           Dim gr As Graphics = PictureBox1.CreateGraphics

 

           '(0,0)-(100,100)に、幅1の黒い線を引く

       gr.DrawLine(Pens.Black, 0, 0, 100, 100)

 

           '(100,100)の位置に幅20高さ20の青い四角を描く

        gr.DrawRectangle(Pens.Blue, 100, 100, 20, 20)

 

 

           '(120,120)の位置に幅20高さ20の金色の塗りつぶしの四角を描く

        gr.FillRectangle(Brushes.Gold, 120, 120, 20, 20)

 

 

           '(100,50)の位置にある幅10高さ10の四角に外接する赤色の円を描く

        gr.DrawEllipse(Pens.Red, 100, 50, 10, 10)

 

           Dim p As New Pen(Color.Gray, 5)

           '(100,0)-(0,100)に、幅5の灰色の線を引く

            gr.DrawLine(p, 100, 0, 0, 100)

 

      End Sub

 

3)また, Button を1つ作成し、ボタンをクリックし画面消去のコードを書き、実行してみる。

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

 

                PictureBox1.Image = Nothing

      End Sub

 

4)さらに、Button を1つ作成し、ボタンをクリックすると終了するコードを書き、実行してみる。また,

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

    End

End Sub

 

 

5)他のグラフィックメソッドも書き加えて実行してみる(楕円や四角形など)。基本的な図形が自分の意図したところに描けるようにしておくこと。

 

6)“すべてを保存”で保存する.

 

 

 

 


加藤のページへ | ICTメディア編集U | グラフィックを用いたシミュレーションプログラム練習