Visual Basic 6.0 初級講座
VB6対応

 

Visual Basic 中学校 > VB6 初級講座 >

第2回 絵を書く

 

さて、前回は色を指定する方法を勉強しましたので、今回は色も使ってプログラムから絵を書く方法を勉強することにします。

この回の要約

・線を描くにはLineメソッドを使う。

・円を描くにはCircleメソッドを使う。

・Lineメソッドを使えば長方形も描ける。

・Circleメソッドを使えば楕円、おうぎ形、(楕円)弧も描ける。

 

1.線を書く

 

線を書く命令では「どこからどこに線を引くのか」を指定しなければなりません。このとき相手が人間なら「ここからここまで」と指で示せばよいのですがコンピュータ相手ではこうはいきません。やはり、数字で指定することになります。

これ以上の細かい説明は後回しにしてとりあえずコーディング(プログラミング)してみましょう。次のようにして下さい。

1.フォームにコマンドボタン(Command1)を1つ配置します。

配置する位置はフォームの左下辺りにしておいてください。

コマンドボタンのアイコンがわからない方は下の画像を参考にして下さい。

■画像1:ツールボックス

2.コマンドボタンをクリックしたときの動作を次のように記述します。

配置したコマンドボタンをダブルクリックすると自動的にコード編集画面になるので楽ですよ。

VB6対応

Private Sub Command1_Click()

Me.Line(0, 0) - (1000, 2000), RGB(255, 0, 0)

End Sub

■コード1:赤い線を引く

「 、 」 と 「 . 」 に注意してください。 Meの後ろは「 . 」で、数字の間にあるのは「 、 」です。 また、かっこのあいだにある「 - 」は引き算の記号です。

さあ打ち終わったら実行してみてください。赤い線が描かれたでしょう。もし、エラーが出たらよーくみなおしてみてください。

では、解説します。まず、Me(ミー)とは常に自分のことです。フォームにプログラムしている場合にはそのフォームのことを指します。ですからMeの代わりにForm1と書いても大丈夫だと思いますが、フォームの名前は後で変えることもできるのではじめからMeを書いておくとフォームの名前が変わってもプログラムを直す必要がなくて楽です。

次に最後の RGB(255,0,0) は 赤 と言う意味ですね。これは前回やりました。もちろんここの数字は自分で変えてもかまいません。好きな色にしてみてください。

問題は  (0, 0) - (1000, 2000)  の部分です。これが最初に言った「ここからここまで」という指定になっているのです。かっこのなかは左の数字が 横 を、右の数字が 縦(たて) を表しています。そして、VisualBasicではフォームの左上は必ず(0, 0) になっています。

つまり、この部分は 「(横0、縦0)から(横1000、縦2000)まで線を引け」という意味になっているのです。このように2つの数字が場所を表しているときその数字のことを「座標(ざひょう)」といいます。これからはいちいち説明せずに「座標」という言葉を使うので覚えてください。

そうはいってもなれないうちは大変でしょう。とりあえずは今書いた座標をいろいろ変えて遊んでみてください。

 

2.円を書く

 

すぐ上でやったように線を書くときにはLineメソッド(ライン)を使いました。円を書くときにはCircle(サークル)メソッドを使います。

Lineの時は線の両端を座標で指定しましたが、Circleの場合は円の中心座標を座標で指定し、それとは別に半径を指定します。たとえば、中心座標(500, 600)で半径200の赤い円を描くには次のようになります

Circle(500, 600), 200, RGB(255, 0, 0)

もっといろいろ細かい指定もできるのですが今回はただ円を描くことに集中します。

ではコーディングしてみましょう。先ほどのプログラムにさらにもう1つコマンドボタン(Command2)を追加してください。そして次のように記述します。

VB6対応

Private Sub Command2_Click()

Me.Circle(1000, 1000), 500 ,RGB(0, 255, 0)

End Sub

■コード2:円を描く

実行すると何が起こるかわかりますか?まあ自分で試してみてください。

発展学習

発展学習では意欲的な方のために現段階では特に理解する必要はない項目を解説します。

ここまでの知識を使ってかんたんなCGを作ってみましょう!次の手順でプログラムしてください。

■画像2:コード2の実行結果。こんな画像になります。

1.フォームにピクチャーボックス(Picture1)を配置します。かなり大きくしてください。だいたい画面の4分の1くらいの大きさが良いでしょう。

2.ピクチャーボックスをダブルクリックして次のように記述します。

Private Sub Picture1_Click()

Dim K As Integer

Picture1.BackColor = RGB(0,0,0)  '背景を黒くする。

For K = 1 To 2000 

Picture1.Circle ( 3000 , 3000 ) ,K ,RGB(K \ 255 , K Mod 255 ,150)

Next K

End Sub

■コード2:2000個の円を少しずつ半径をかえて描く

実行してみると、結構面白いでしょう? 自分でいろいろいじって改造してみてね。まだ勉強していない命令もありますけど。このプログラムではFor 〜 Next の間は2000回繰り返されます。繰り返されるたびにKの値は1ずつ大きくなっていきます。だから2000個の円をこれだけの短いプログラムで描くことができるのです。

 

3.その他の形は?

 

もちろん今見た、線、円のほかにもいろいろなものが書けます。ここではその一部を紹介します。説明している例をただ読み過ごしていくのではなく、実際に打ち込んで実行してみることをおすすめします。

1.四角形を書く

これは最初にやった線を書くとほとんど一緒です。違うのは最後に 、BFをつけるところです。なお、BFではなくて B だけをつけるとぬりつぶさない四角形を書きます。

書式:Line(x1, y1) - (x2, y2), c, BF

例:赤い四角形を書く

Line(0, 0) - (1000, 3000), RGB(255, 100, 100), BF

2.おうぎ形を書く

これは先ほど説明した円を描く命令とよく似ています。下の書式を見ると c までは円の場合とまったく同じなので解説の必要はないでしょう。。kakudo1はおうぎ形のスタートの角度、kakudo2はおうぎ形の終わる角度を指定します。しかし、角度の指定はなんと 算数・数学でよくつかう 「 度 」ではないのです。ラジアンで指定します。ラジアンなんて知らないって?そういう人にはここはつらい。いちおう説明しておくと 30度 は ラジアンでは 30×3.14159÷180となります。とにかく角度に円周率をかけて180でわればラジアンになります。

書式:Circle(x, y), r, c, kakudo1, kakudo2

なおkakudo1,kakudo2をマイナスにするとおうぎ形になり、プラスにすると弧になります。

例:中心角60度のおうぎ形を書く。

Circle(300 ,300), 200, RGB(0, 0, 150), -0.001, -60 * 3.14159 / 180

注意:この例でkakudo1は 本当は 0 にしたかったんですが、 0 だとマイナスに出来ないので仕方なく -0.001 にしました。

3.楕円(だえん)を書く

楕円というのはゆがんだ円のことです。このゆがみ方を数字で指定します。数字で表されたゆがみ方をアスペクト比と言い、1のときは普通の円を表します。1より大きいときは縦長にゆがみ、1より小さいとき(0.5とか0.8など)の時には横長になります。 そのため楕円の書式はやはり円の書式とほとんど一緒で最後にアスペクト比をつけくわえればよいだけです。

書式:Circle(x, y), r, c, , , aspect

例:横長の楕円を書く。

Circle(300, 300), 250, RGB(100, 255, 100),,, 2

注意:最後の2がアスペクト比です。その前に「 、 」が3つもつきますよ。

 

4.まとめ

 

ほかにもいろいろあって全部説明したいのですが、今日は疲れましたし、とりあえず基本的なことはすべて説明し終わりましたのでここで終わりにします。また次回に会いましょう!

今回の新出語

新出語 読み方 説明
Me ミー 自分のこと。フォームの中ではそのフォームのことを指す。
Line ライン 線、長方形を描く
Circle サークル 円、楕円(だえん)、(楕円)弧を描く
座標 ざひょう 位置を数値で表したもの
ラジアン ラジアン 角度の単位。ラジアン=度×円周率÷180。
アスペクト比 アスペクトひ 円のゆがみ具合を表す数値。多分、楕円の外接四角形の縦の長さ÷横の長さ。

■表1:今回新しく登場した言葉。赤字は必修単語です。