1.3 2次元図形とアフィン変換テストプログラム(その1)

1.3.2 アフィン変換テストプログラム(その1)

 アフィン変換をテストするためのプロジェクトを作成してみよう.今までのプロジェクトにおいて,コマンドボタンCommand1の(オブジェクト名)を“cmdData”に,Captionを“データ作成”とします.(オブジェクト名)を変更しても,今までのプロシージャはそのまま残りますが必要なければ削除します.

 ほかに4個のコマンドボタンを図1.7のようにフォーム上に配置します.(オブジェクト名)をそれぞれcmdRotate,cmdScale,cmdTranslateX,cmdTranslateYとします.Captionも図1.7のように変更してください.

(図1.7)アフィン変換のテスト用フォーム

(約5Kバイト)

 

 

 [データ作成]ボタンをクリックしたとき,座標原点を中心とする幅が20の正方形のデータを作成します.Clickイベントプロシージャにリスト1.6のようにコーディングします.

(リスト1.6)VB.CmdDataのClickイベント(frmTestCGI)

Private Sub CmdData_Click()

   ' 正方形のデータ

   n = 4

      px(0) = −10 : py(0) = −10

      px(1) = 10 : py(1) = −10

      px(2) = 10 : py(2) = 10

      px(3) = −10 : py(3) = 10

 

     Call Draw

End Sub

 nは図形の頂点数を,px( )は頂点座標の配列です.これらは他のプロシージャでも使用するので宣言セクションにおいてリスト1.7のように宣言します.複数の文を1行でコーディングするときはコロン : で区切ります.

(リスト1.7)VB.宣言セクション(frmTestCGI)
Option Explicit

Const PI = 3.14159265

Dim px(3) As Single, py(3) As Single ' 頂点座標

Dim x0!  ,y0! ' デカルト座標の原点

Dim n%  '頂点数

 PIは回転操作で用いる円周率です.定数はこのようにConstステートメントで宣言します.なお,シングルクォーテーション ' はコメント記号です.

配列宣言について

 配列変数を宣言するときは,px(3)のように配列の大きさを指定します.このように宣言するとデフォルトでは,px(0),px(1),px(2),px(3)の4個の変数が確保されたことになります.すなわち,配列変数のインデックスよりも一つ多い個数になることに注意してください.これを,
  Dim px(0 To 3) as Single?
のように宣言することもできます.また,2次元配列は
Dim a(10,20) as Single
のように宣言します.

 リスト1.6のDrawは図形描画部分のサブプロシージャです.他のルーチンからも共通に用いられるプロシージャは,イベントプロシージャとは別にジェネラルプロシージャとして作成し,Callステートメントで呼び出します.


Copyright 2000 酒井 幸市

新刊のご案内


Copyright 1997-2001 CQ Publishing Co.,Ltd.