1.2 物理座標とデカルト座標

 通常,われわれが数学で使用するデカルト座標(論理座標ともいう)は,x軸は右に向かって増え,y軸は上に向かって増えます.

 ところが,Windows画面の座標系はy軸の正方向が下向きになっています.ピクチャーボックスもデフォルトではこのような座標系であり,しかも左上の角の点が原点です.このような座標を物理座標といいます.

 では,座標点(10, 10)から座標点(50, 50)に直線を描いてみましょう.リスト1.2リスト1.4のように変更して実行してみてください.

(リスト1.2)VB.Command1のClickイベント(frmTestCGI)

Private Sub Command1_Click()

     Picture1.Currentx = 50

     Picture1.Currenty = 50

  Picture1.Print "Hello Visual Basic"

  Picture1.Currentx = 50

  Picture1.Print "始めてのVBプログラミングです" 

End Sub

 

(リスト1.4)VB.Command1のClickイベント(frmTestCGI)

Private Sub Command1_Click()

  Picture1.DrawWidth = 2

  Picture1.Line (10,10) - (50,50) 

End Sub

 DrawWidthは線幅を指定するプロパティです.ピクチャーボックスの背景色はプロパティボックスを用いて変更します.Picture1のBackColorを白に設定し実行すると図1.3のようになります.

(図1.3)スクリーン座標における直線

 

 

 ピクチャーボックスの中心が原点になるようなデカルト座標に変換するには,リスト1.5のように変更します.結果は図1.4のようになります.

(リスト1.5)VB.Command1のClickイベント(frmTestCGI)

Private Sub Command1_Click()

  Dim x0 As Single ,y0 As Single

 

  x0 = Picture1.Width / 2

  y0 = Picture1.Height / 2

    Picture1.DrawWidth = 2

  Picture1.Line ( x0 + 10, y0 - 10 ) - ( x0 + 50 , y0 - 50) 

End Sub

 

(図1.4)デカルト座標における直線

 

 

 一般に,物理座標系におけるデカルト座標の原点を(X0, Y0)とすると,デカルト座標値(x, y)に対する物理座標系の座標値(X, Y)は,

… (1.1)

となります.図1.5にこれらの関係を示します.

(図1.5)物理座標系(X,Y)とデカルトカルト座標系(X,Y)

 

 

 なお,Scaleメソッドを用いると座標系を変更することができ,直接デカルト座標値で描画することが可能です.

変数の宣言について

  Dimステートメントは,変数の宣言ステートメントです.プロシージャ内で用いた場合は,そのプロシージャだけで有効な変数です.宣言セクションでDimまたはPrivateステートメントで宣言すると,フォームモジュール内のどこからでも使用できるようになります.これに対し,標準モジュール宣言セクションにおいてPublicステートメントで宣言した変数は,すべてのモジュールのどこからでも使用できます.

 変数の型を指定するには,変数名の後にAs Singleのように指定します.1行に複数の変数を宣言する場合も変数ごとに型を指定します.これを省略するとバリアント型として解釈されるので注意しましょう.

 型の指定には型宣言文字を用いることができます.例えば,x0 As Singleを x0! のように宣言することができます.主な型名と型宣言文字を表1.1に示します.なお,型宣言文字は配列宣言のときには使えません.

(表1.1)VBの主な型名と型宣言文字

(約6Kバイト)

 

 


Copyright 2000 酒井 幸市

新刊のご案内


Copyright 1997-2001 CQ Publishing Co.,Ltd.