/// 実習H2 グラフィックス(1) | プログラミング実習 |
グラフィックス・オブジェクトの図形描画のメソッド 直線 DrawLine(PEN, X1, Y1, X2, Y2)
PENオブジェクトを使って、座標(X1, Y1)と(X2, Y2)を結ぶ直線を描画する。消去 Clear(COLOR)
グラフィックスを消去して、COLORで塗りつぶす。四角形 DrawRectangle(PEN, X, Y, W, H)
PENオブジェクトを使って、座標(X, Y)から幅W ×高さH の四角形を描画する。だ円 DrawEllipse(PEN, X, Y, W, H)
PENオブジェクトを使って、座標(X, Y)から幅W×高さHの四角形の中に収まるだ円を描画する。塗りつぶし FillRectangle(BRUSHE, X, Y, W, H) … 塗りつぶしの四角形
FillEllipse(BRUSHE, X, Y, W, H) … 塗りつぶしのだ円
BRUSHEオブジェクトを使って、塗りつぶしの図形を描画する。
BRUSHEオブジェクトもPENオブジェクトと同じように、Brushes.Redという形で色を指定する。文字 DrawString(文字列, FONT, BRUSHE, X, Y)
文字列をFONTオブジェクトとBRUSHEオブジェクトを使って、座標(X, Y)に描画する。
’Fontオブジェクトの作成
Dim MyFont As New Font(FONT_NAME, SIZE, STYLE)
STYLEには、次のFontStyle列挙体を使う。 (例FontStyle.Bold)
Bold … 太字テキスト
Italic … 斜体テキスト
Regular … 標準テキスト
Strikeout … 中央に線が引かれているテキスト(取消線)
Underline … 下線付きテキスト
複数のスタイルを指定する場合は、Or演算子で演算をする。
(例FontStyle.Bold Or FontStyle.Italic … 太字と斜体の指定)画像 DrawImage(画像, X, Y) 実習H4
画像を座標(X, Y)に描画する。
実習H2図形描画 完成版
プロジェクト名 実習H2図形描画
動作説明
水平、垂直、斜めの3本の直線を描画する。
水平線は、黒色(Pens.Black)、(10, 100)-(290, 100)を結ぶ直線。
垂直線は、赤色(Pens.Red)、(70, 10)-(70, 290) を結ぶ直線。
斜線は、青色(Pens.Blue)、(30, 30)-(270, 270) を結ぶ直線。
デザイン
フォーム Form1
Size = 410, 356
ボタン btnLine
Location = 318, 12
Text = 直線
ピクチャボックス picCanvas
BackColor = White (白)
BorderStyle = FixedSingle
Location = 12, 12
Size = 300, 300
コード(プログラム)
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
'Bitmapオブジェクト作成
picCanvas.Image = New @ (picCanvas.Width, picCanvas.Height)
End Sub
Private Sub btnLine_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles btnLine.Click
'Graphicsオブジェクト作成
Dim gr As Graphics = Graphics. A (picCanvas.Image)
'水平線、黒色
B (Pens.Black, 10, 100, 290, 100)
'垂直線、赤色
gr.DrawLine(Pens.Red, 70, 10, 70, 290)
'斜線、青色
gr.DrawLine(Pens.Blue, 30, 30, 270, 270)
'picCanvasの更新
picCanvas. C
'オブジェクト解放
gr.Dispose()
End Sub
End Class
テスト
□ [直線]ボタンをクリックすると直線が3本描画される。
H2の2 (消去)
動作説明
グラフィックスを消去して、白色で塗りつぶす。
デザイン
追加 ボタン btnClear
Location = 318, 289 Text = 消去
コード(プログラム) 追加部分のみ。
Private Sub btnClear_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnClear.Click
'Graphicsオブジェクト作成
Dim gr As Graphics = Graphics.FromImage( @ )
'グラフィックス消去()
gr.Clear(Color. A )
picCanvas.Refresh() 'picCanvasの更新
gr.Dispose() 'オブジェクト解放
End Sub
テスト
□ [消去]ボタンをクリックするとグラフィックスが消去される。
H2の3 (四角形)
動作説明
2つの四角形を描画する。(コードのコメントを参照)
デザイン
追加 ボタン btnShikaku
Location = 318, 41 Text = 四角形
コード(プログラム) 追加部分のみ。
Private Sub btnShikaku_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles btnShikaku.Click
'Graphicsオブジェクト作成
Dim gr As Graphics = Graphics.FromImage(picCanvas.Image)
'長方形、緑色、始点(10,10)、幅200pix、高さ150pix
gr.DrawRectangle(Pens.Green, 10, 10, 200, 150)
'正方形、オレンジ色、始点(50,30)、幅150pix、高さ150pix
@ (Pens.Orange, 50, 30, 150, 150)
picCanvas. A 'picCanvasの更新
gr.Dispose() 'オブジェクト解放
End Sub
テスト
□ [四角形]ボタンをクリックすると2つの四角形が描画される。
H2の4 (だ円)
動作説明
円とだ円を描画する。(コードのコメントを参照)
デザイン
追加 ボタン btnDaen
Location = 318, 70 Text = だ円
コード(プログラム) 追加部分のみ。
Private Sub btnDaen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles btnDaen.Click
'Graphicsオブジェクト作成
Dim gr As Graphics = Graphics.FromImage(picCanvas.Image)
'円、マゼンタ色
gr.DrawEllipse(Pens.Magenta, 0, 0, 150, 150)
'だ円、オリーブ色
@ (Pens.Olive, 20, 20, 250, 125)
picCanvas.Refresh() 'picCanvasの更新
gr. A 'オブジェクト解放
End Sub
テスト
□ [だ円]ボタンをクリックすると円とだ円が描画される。
H2の5 (塗りつぶし)
動作説明
塗りつぶしの四角形とだ円を描画する。(コードのコメントを参照)
デザイン
追加 ボタン btnFill
Location = 318, 99 Text = 塗りつぶし
コード(プログラム) 追加部分のみす。
Private Sub btnFill_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnFill.Click
'Graphicsオブジェクト作成
Dim gr As Graphics = Graphics.FromImage(picCanvas.Image)
'塗りつぶしの四角形、チョコレート色
gr.FillRectangle(Brushes.Chocolate, 100, 100, 150, 80)
'だ円、シアン色
@ (Brushes.Cyan, 50, 150, 120, 70)
A .Refresh() 'picCanvasの更新
gr.Dispose() 'オブジェクト解放
End Sub
テスト
□ [塗りつぶし]ボタンをクリックすると塗りつぶしの四角形と塗りつぶしのだ円が描画される。
H2の6 (文字)
動作説明
「プログラミング実習」と描画する。
デザイン
追加 ボタン btnMoji
Location = 318, 128 Text = 文字
コード(プログラム) 追加部分のみ。
Private Sub btnMoji_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnMoji.Click
'Graphicsオブジェクト作成
Dim gr As Graphics = Graphics.FromImage(picCanvas.Image)
'Fontオブジェクト作成
Dim gfont As New Font("MS 明朝", 12, FontStyle.Bold)
'文字描画 ↑”MS”は全角、”MS”と”明朝”の間は半角空白。
gr.DrawString("プログラミング実習", gfont, Brushes.Black, 20, 10)
picCanvas.Refresh() 'picCanvasの更新
@ .Dispose() 'オブジェクト解放
A .Dispose() 'オブジェクト解放
End Sub
テスト
□ [文字]ボタンをクリックすると文字が描画される。
Memo 節約
追加してきた描画のメソッドでは、「Graphicsオブジェクト作成」、「描画」、「更新」、「解放」の順でプログラムされている。オブジェクトを作成して、プログラム終了まで解放しなければ、それぞれのメソッドは、「描画」、「更新」だけで済む。すなわち、処理が節約できる。Webで説明しているので参考にしてみよう。 ⇒実習H2の節約バージョン
/// 実習H2 グラフィックス(1) | Copyright©2014 Hiroshi Masuda |