ブロックを積む(2)
「はじめてのVectorScript」と題して連載を始めるわけですが、本連載は「Vectorworksは持っているけどVectorScriptって何?」、「プログラミングって難しいんでしょ?」「アイデアはあるんだけど...」という人が「それ、VectorScriptでやれば簡単だよね」と言えるくらいになるのが目標です。
VectorworksはMacintosh版とWindows版とのマルチプラットホーム環境でありながらも、VectorScriptはOSを意識することのなくプログラミングが可能で、どちらでプログラミングしてもソースコードの変更なしでMacintosh、Windowsどちらでも実行が可能です。そしてVectorworksを持っていればいますぐにでも始められます。
ゲーム機の場合、DQ7(ソフト)で遊びたいという理由で3DS(ハード)を選ぶと思います。「このソフト(あなたが書いたスクリプト)を使いたいためにVectorworksを選びました」と言わせるようなプログラムを目指してがんばりましょう。自分のアイデアをプログラム化しブログで公開なんてことも夢ではありません。
第2章 2D図形の描画
Vectorworksの図形の基本の基である図形、四角形。
最終目標であるブロックの壁は柱状体の集まりですが、柱状体の元は四角形です。
それでは、四角を描いてみましょう。 四角を描く手続きは2つあります。
手続きRect(p1X, p1Y, p2X, p2Y : REAL);
手続きRectangleN(orginX, orginY, directionX, directionY : REAL; width, height : REAL);
まずはRect
Rect(p1X, p1Y, p2X, p2Y : REAL);
4つの引数には、対角にあたる座標をいれます。
Rect( 10, 20, 60, 50 );
書いたらコンパイルボタン「*」を押してコンパイルチェックをします。
もしエラーが出てしまったら、
- 半角で書いているか(スペースも半角か)
- Rectのスペルが間違っていないか(大文字小文字は関係ありません)
- 引数がカンマ「,」で区切られているか(ピリオド「.」になっていないか)
- 引数の数が合っているか(4つ)
- 行末にセミコロン「;」があるか(コロン「:」になっていないか)
などを確認します。
エラーがなくなったら、エディタを閉じてコマンドをダブルクリックして起動してみましょう。
同時に複数描くには、
Rect( 10, 20, 60, 50 ); Rect( 20, 30, 70, 60 );
12
次にRectangleN
これは角度のついた四角形を描くことができます。
RectangleN(orginX, orginY, directionX, directionY : REAL; width, height : REAL);
最初の2つは左下の座標。
次の2つは角度を指定するのですが、それぞれの長さの比で角度が決まります。
30度ならば、√3, 1
45度ならば、1, 1
60度ならば、1, √3
90度ならば、0, 1
という具合です。
最後の2つは幅と高さです。
RectangleN( 10, 20, 1, 1, 50, 30 );
90度以上は...
RectangleN( 10, 20, 0, 1, 50, 30 ); RectangleN( 10, 20, -1, 1, 50, 30 ); RectangleN( 10, 20, -1, -1, 50, 30 );
さらに、隅の丸い四角形は、手続き名の頭にRが付いた
手続きRRect(p1X, p1Y, p2X, p2Y : REAL; xDiam, Diam : REAL);
手続きRRectangleN(orginX, orginY, directionX, directionY : REAL; width, height, xDiam, yDiam : REAL);
それぞれ、最後の引数2つが、楕円の半径x,yとなります。
RRect( 10, 20, 60, 50, 10, 5 );
RRectangleN( 10, 20, 1, 1, 50, 30, 10, 5 );