・座標系についてしっかり覚えよう!
・長さは全てPixcel(画素)で表されます(VB2005)。
・線、円などの描画命令
VB.Netでは座標の単位は、「ピクセル」(画素)。
グラフィックスメソッドというのは、グラフィックスを書くための命令で、VB.Netでは数多く用意されるようになった。
ここでは、基本的な図形(線、円、四角)をプログラムとして書かせる命令を紹介する。
DrawLine命令は、線を描くものであり、次のように利用する。
DrawLine (ペン,始点x座標, 始点y座標,終点x座標, 終点y座標)
座標は、通常の(x,y)座標を指定
ペンは、Pens.色のように指定する;例えば、Pens.Red, Pens.Black, Pens.Blue などように
○色:Black, Blueなどが指定可能(p246「表10-3」参照)
例えば、grph.DrawLine (Pens.Red, 0, 0, 100, 100) は、座標(0,0)つまり原点から(100,100)まで赤い線を引けという意味になる。
DrawRectangle命令は、四角を書くものであり、次のように利用する。
grph.DrawRectangle( ペン,始点x座標, 始点y座標,幅, 高さ)
DrawEllipse命令は、円や楕円を書くものであり、次のように利用する。
grph.DrawEllipse( ペン,始点x座標, 始点y座標, 幅, 高さ )
指定するx,y座標は、円の中心ではないことに注意しよう
フォームの中央に半径100の円を表示するには。。。
中央の座標は (size.width/2, size.height/2 )
円の始点は、この中央から、左(X軸マイナス方向)に100/2、上(Y軸マイナス方向)に100/2
Clearという命令は、DrawLine, DrawRectangle, DrawEllipse命令などで書いたグラフィック全部を消してしまう命令である。
grph.Clear(Color.White)
何色で消すかを()内に指定する
Dim fx, fy, x, y As Integer
Dim grph As System.Drawing.Graphics = Me.CreateGraphics
fx = Int(Size.Width - 4 - 4)
fy = Int(Size.Height - 30 - 4)
grph.DrawLine(Pens.Red, 0, 0, fx, fy)
grph.DrawLine(Pens.Red, fx, 0, 0, fy)
Size.Width, Heightはフォームの大きさ。フォーム内のタイトルバー(30)や枠の太さ(4)を考慮して、Form内の大きさをfx,fyに計算している。
Dim n, fx, fy, x, y As Integer
Dim grph As System.Drawing.Graphics = Me.CreateGraphics
n = 100
fx = Int(Size.Width - 4 - 4)
fy = Int(Size.Height - 30 - 4)
x = Int(fx / 2 - n / 2)
y = Int(fy / 2 - n / 2)
grph.DrawEllipse(Pens.Red, x, y, n, n)
For h = 0 To 200
grph.DrawLine(Pens.Red, 0, 0, 200, h)
Next h
Dim grph As System.Drawing.Graphics = Me.CreateGraphics
'変数宣言(プログラムの先頭部分)で、自分用のペン変数mypenを準備
Dim mypen As New Pen(Color.Black)
'色をランダムに決めたい時に、次のようにして15色(白はなし)からランダムに決定し、
'これを利用して、mypenの色を変更する。
mypen.Color = ColorTranslator.FromWin32(QBColor(Rnd(1) * 15))
'ランダムな色に変更されたペンmypenを利用して、線や円を描く
grph.DrawLine(mypen, 0, 0, 200, 200)
grph.DrawEllipse(mypen, 0, 0, 200, 200)
Dim grph As System.Drawing.Graphics = Me.CreateGraphics
'変数宣言(プログラムの先頭部分)で、自分用のペン変数mypenを準備
Dim mypen As New Pen(Color.Black)
'色をランダムに決めたい時に、次のようにしてr,g,bの各レベルをランダムに決定し、
'これを利用して、mypenの色を変更する。
r = Int(Rnd(1) * 256)
g = Int(Rnd(1) * 256)
b = Int(Rnd(1) * 256)
mypen.Color = Color.FromArgb(r, g, b)
'ランダムな色に変更されたペンmypenを利用して、線や円を描く
grph.DrawLine(mypen, 0, 0, 200, 200)
grph.DrawEllipse(mypen, 0, 0, 200, 200)
教科書;
10.1, 10.2, 10.6, 10.9