目次ページ  前ページ  次ページ

2. 図形要素の代数的表現

2.5 行列を図で表示する方法


2.5.4 代入文が作図コマンドになっていること

 図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

前ページ  次ページ