図2.6は、GBASICのプログラム文と、その実行で描いた作図を示してあります。BASIC流のプログラミングの解説は後の章に回しますので、ここでは大体の筋書きを見て下さい。このプログラム文には、いわゆるグラフィックス作画の命令に当たるコマンドがありません。実は、図形要素を表す変数を代入文の左辺値に使うと、自動的にその変数が作画されるようにGBASICは設計してあります。代入文は、擬似的に代数的な演算をさせて、左辺値が右辺値の性質を取り込むような演算を行わせます。その仕様の詳細は次の章から解説します。図2.5の作図では、S=BとB=Sの二つの代入文があります。Sは球を表す変数名、Bは直方体を表す変数名です。S=Bの代入文は、直方体に外接する球を計算して図化する処理であり、B=Sは、球に外接する正六面体が求まります。デフォルトの直方体は2×2×2の正六面体です。FOR-NEXTのループで繰り返し計算をさせますので、球と正六面体を交互に外接させた図が得られます。
|
10 REM -- 回転行列を使う例題プログラム
20 DPWIND 0,0,100 : CLG
30 DEF3PT P : DEF3TR T : DEF3ED E
40 DIM PV[4],ED[6]
50 READ PV
60 DATA -5 -5 -5, 5 -5 -5, 0 5 -5, 0 0 5
70 AX=15: AY=30:AZ=0
80 T=XROT(AX,AY,AZ,P0)
90 FOR I=1 TO 3
100 J=I+1 : IF J=4 THEN J=1
110 ED[I]=PV[I]@PV[J] : ED[I+3]=PV[I]@PV[4]
120 NEXT I
130 FOR J=1 TO 6
140 ED[J]=ED[J]+30
150 NEXT J
160 FOR I=1 TO 10
170 FOR J=1 TO 6
180 ED[J]=T*ED[J]
190 NEXT J
200 NEXT I
210 T=30*T
|
図2.6 変換行列を使った例図とそのGBASICプログラム
2008.2 橋梁&都市PROJECT |