d3module
Version 1.67
Date 2008/05/01
Author S.Programs
目次 (5 グループ / 29 ページ)
3D 制御命令
d3getpos
座標変換結果を返す
入力された 3D 座標に対応するスクリーン座標を返します。
システム変数 stat が 0 の場合、位置がカメラの後ろとなるため座標変換できなかったことを表します。
d3initlineto
d3lineto, d3ribbonto 使用前の初期化
d3lineto, d3ribbonto を使用する前の初期化を行います。
この命令の直後の d3lineto, d3ribbonto 命令では、描画されずに線の起点のみが設定されます。
d3pos
カレントポジションを設定
3D 座標に対応する画面上の点にカレントポジションを移動します。
システム変数 stat が 0 の場合、位置がカメラの後ろとなるため座標変換できなかったことを表します。その場合、カレントポジションは変更されません。
d3setcam
カメラ位置設定
カメラの座標 x1, y1, z1 と向き (ターゲット位置 x2, y2, z2) 設定します。d3module の描画命令を実行する前に、この命令を使用してカメラの位置を定義する必要があります。
d3module では、+z 方向がカメラの天頂方向となります。
d3setlocal
ローカル座標系設定
ローカル座標系を設定します。ローカル座標系は、d3setcam 以外のすべての d3module 命令に適用されます。
この命令を使用することで、d3setcam だけでは実現できなかったさまざまな座標変換設定を行うことができます。
d3vpos
d3module 内部のカレントポジション設定
d3module 内部の仮想的なカレントポジションを設定します。この命令で設定した位置は、d3lineto 命令の始点や d3particlem 命令の描画の基準位置となります。
d3pos や d3pset といった命令は、内部的にこの命令を呼び出して動作しています。
d3wincx
スクリーン描画時の x 中心座標 (int)
2D スクリーンに描画するときの中心位置 (整数 ピクセル単位) を表す変数です。この変数は、d3setcam 命令を実行するごとに現在のウィンドウの中心 (ginfo_winx / 2) に設定されます。中心位置を変更したいときは、d3setcam の実行後にこの変数の内容を変更します。
d3wincy
スクリーン描画時の y 中心座標 (int)
2D スクリーンに描画するときの中心位置 (整数 ピクセル単位) を表す変数です。この変数は、d3setcam 命令を実行するごとに現在のウィンドウの中心 (ginfo_winy / 2) に設定されます。中心位置を変更したいときは、d3setcam の実行後にこの変数の内容を変更します。
タイマー命令
d3getfps
現在のフレームレート (fps)
現在のフレームレート (fps 単位) を返します。
この関数を正しく動作させるためには、1 フレームごとに 1 回だけ毎回呼び出す必要があります。
d3timer
ms タイマー
Windows が起動してからの経過時間を ms (ミリ秒, 1/1000 秒) 単位で返します。
この関数は、Win32API の timeGetTime() そのものとなっています。
ベーシック描画命令
d3arrow
矢印を描画
入力された 3D 座標の 2 点を結ぶ矢印を描画します。x1, y1, z1 が矢じり部分になります。
システム変数 stat が 0 の場合、位置がカメラの後ろとなるため座標変換できなかったことを表します。
d3box
ボックスを描画
3D の座標に対応するワイヤーボックスを描画します。
この命令で描画されるボックスは、すべての辺が座標軸と平行なものとなります。
d3circle
円を描画
円を描画します。これは常にカメラ方向を向く円なので、球体に見えます。塗りつぶしフラグが 1 の場合は、円の内部が塗りつぶされます。
システム変数 stat が 0 の場合、位置がカメラの後ろとなるため座標変換できなかったことを表します。
d3line
ライン描画
入力された 3D 座標の 2 点を結ぶラインを描画します。
クリッピング処理を行うため、片方の端がカメラの後ろとなる線分も描画できます。(ただし、その場合は動作が遅くなります。)
システム変数 stat が 0 の場合、位置がカメラの後ろとなるため座標変換できなかったことを表します。
d3lineto
前回描画位置からの線を描画
前回描画位置からの線分を描画します。
複数の連続線の描画には、座標変換計算が 1 点省略できる分、d3line 命令よりもこの d3lineto 命令を使用したほうが高速です。d3line 命令と違ってクリッピング処理がされませんが、多くの短い線分の描画に向いています。
d3mes
文字列を表示
指定した 3D 座標に、現在のフォント設定で文字列を表示します。
システム変数 stat が 0 の場合、位置がカメラの後ろとなるため座標変換できなかったことを表します。
d3pset
点を描画
入力された 3D 座標に対応する画面上の点に pset します。
システム変数 stat が 0 の場合、位置がカメラの後ろとなるため座標変換できなかったことを表します。
拡張描画命令
d3ldparticle
パーティクル画像ロード
指定したスクリーン上の画像を使ったパーティクルを作成します。この命令を実行すると、指定した ID のパーティクルが描画できるようにます。(描画ではなく、パーティクル ID の登録を行います。)
この命令は実行にはやや時間がかかるため、初期化処理時にまとめて実行するようにしてください。
d3mkparticle
パーティクル作成
色や形状を指定してパーティクルを作成します。この命令を実行すると、指定した ID のパーティクルが描画できるようにます。(描画ではなく、パーティクル ID の登録を行います。)
この命令は実行にはやや時間がかかるため、初期化処理時にまとめて実行するようにしてください。
d3particle
パーティクル描画
指定した描画位置に、現在の gmode 設定にしたがってパーティクルを描画します。
この命令を実行する前に、d3mkparticle か d3ldparticle 命令でパーティクルの作成を行ってください。
d3particlem
前回描画位置にパーティクル描画
前回 d3module の命令で描画した位置と同じ位置に重ねてパーティクルを描画します。座標変換計算が省略できる分、d3particle より高速に動作します。
この命令を実行する前に、d3mkparticle か d3ldparticle 命令でパーティクルの作成を行ってください。
d3particlemr
前回描画位置にパーティクル描画 (回転指定あり)
前回 d3module の命令で描画した位置と同じ位置に重ねてパーティクルを描画します。座標変換計算が省略できる分、d3particler より高速に動作します。d3particlemr 命令は、d3particlem 命令の機能に加えて、パーティクルを二次元的に回転して描画する機能を持ちます。
d3particler
パーティクル描画 (回転指定あり)
指定した描画位置に、現在の gmode 設定にしたがってパーティクルを描画します。d3particler 命令は、d3particle 命令の機能に加えて、パーティクルを二次元的に回転して描画する機能を持ちます。
d3ribbonto
リボン状に連続する四角形面を塗りつぶし描画
前回 d3ribbonto で指定した位置と、今回指定した (x1, y1, z1), (x2, y2, z2) の 4 点を頂点とする 4 角形を、現在の選択色と gmode で塗りつぶします。この命令を連続して実行することで、リボン状に連続する四角形面を、描画することが出来ます。
d3square
四角形面を塗りつぶし描画
四角形の面を、現在の選択色と gmode で塗りつぶします。
ax, ay, az は、4 つの頂点の座標を 左上、右上、右下、左下 の順番で格納したものとなります。
四角形がねじれる形になる場合の挙動は、HSP の gsquare 命令の実装に従います。
d3texture
四角形面に画像を貼り付け描画
四角形の面に、現在の gmode で画像を貼り付けて表示します。
ax, ay, az は、4 つの頂点の座標を 左上、右上、右下、左下 の順番で格納したものとなります。
画像拡縮の描画品質や、四角形がねじれる形になる場合の挙動は、HSP の gsquare 命令の実装に従います。
数学サポート命令
d3dist
距離 (ベクトル) の絶対値を求める
入力された x, y, z の距離 (ベクトル) の絶対値 ( sqrt(x*x + y*y + z*z) ) を返す関数型マクロです。返す値の型は実数 (double) です。
z 座標を省略すれば平面座標での距離を求めることができます。
d3rotate
平面座標回転演算
平面上のベクトル (あるいは位置) x0, y0 を、原点を中心に va [ラジアン] 回転させたベクトルを求めます。計算結果は、x1, y1 で指定した変数に代入されます。
角度は、ラジアン単位 (2π ≒ 6.2831853 を一回転とする角度単位) で入力します。
d3vrotate
任意軸周りの空間回転演算
ベクトル (あるいは位置) x0, y0, z0 を、原点を通るベクトル vx, vy, vz を軸として、va [ラジアン] 回転したベクトルを求めます。回転方向は、回転軸ベクトルの正方向から見て反時計回りになります。物体をローカル座標で回転させるための行列を求める場合などに応用できます。