ICTメディア編集U 2025年12月19日
グラフィックスを用いたプログラムの作成
グラフィックスメソッド
Visual Basicのプログラムにおいて,画面に図形を表示させたい場合には,線、四角形、円などの基本的な図形をDrawLine,DrawRectangle,FillRectangle,DrawEllipseなどのグラフィックスメソッドを用いて描いていきます。
以前の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の部分は,線のカラーで,Black,Red,Blue,Green,Whiteなど様々な色が指定できる.
Ø **.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メソッド
DrawRectangle(Pens.Black, X1, Y1, W, H)
Penオブジェクト:直線や色,幅,スタイルなどを決定するオブジェクト
X1:左端位置,Y1:上端位置,
W:幅,H:高さ
Ø **.DrawRectangle(Pens.Black, X1,
Y1, W, H) のように,グラフィックオブジェクト(**)のあとに,ピリオドでつなげて書く
例)
Dim gr As Graphics = PictureBox1.CreateGraphics
'(100,100)の位置に幅20高さ20の青い四角を描く
gr.DrawRectangle(Pens.Blue, 100, 100, 20, 20)
FillRectangleメソッド
FillRectangle(Brushes.Black, X1, Y1, W, H)
Brushオブジェクト:四角形や楕円などの内部を塗りつぶすときに使用するオブジェクト
X1:左端位置,Y1:上端位置,
W:幅,H:高さ
Ø **.FillRectangle(Brushes.Black, X1, Y1, W, H) のように,グラフィックオブジェクト(**)のあとに,ピリオドでつなげて書く
例)
Dim gr As Graphics = PictureBox1.CreateGraphics
'(120,120)の位置に幅20高さ20の金色の塗りつぶしの四角を描く
gr.FillRectangle(Brushes.Gold, 120, 120, 20, 20)
円,楕円を描きたいとき:
DrawEllipseメソッド
DrawEllipse(Pens.Black, X1, Y1, W, H)
Penオブジェクト:直線や色,幅,スタイルなどを決定するオブジェクト
X1:左端位置,Y1:上端位置,W:幅,H:高さ
(上記のX1,Y1,W,Hで指定される四角形に外接する円,または楕円を書くことができる.)
Ø **.DrawEllipse(Pens.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などの部分に,宣言したオプジェクトを入れればよい.
Pen(Color.***, W)
Color:色を決定する.***部分に色の名称が入る.
W:線の太さ
Ø 以下の例のようにPenオブジェクトとして宣言し,使用したい図形命令などで,使用する.
例)
Dim p As New
Pen(Color.Gray, 5)
'(100,0)-(0,100)に、幅5の灰色の線を引く
gr.DrawLine(p,
100, 0, 0, 100)
画面の消去をしたいとき:
PictureBoxのImageプロパティ(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 | グラフィックを用いたシミュレーションプログラム練習