DrawPS2 Reference


DRAWPS2クラス

メンバ関数

obj.psCreateWindow()
備考
ウィンドウを作成します。
この関数は他のクラスの関数より後に呼び出す必要があります。

windowクラス

obj.window.style
変数意味備考
enum SIMstyleシミュレーションの種類オブジェクトの描画方法を指定します
win32APIならDRAW_PS、OpenGLならbeachを代入します。
obj.window.menu
変数意味備考
boolmenuメニューの有無falseのときメニューバーを非表示にします。
obj.window.maximize
変数意味備考
boolmaximize最大化の有無falseのとき最大化を無効にします。
また境界線も持たなくなります。
obj.window.Size(int width, int height)
引数意味備考
intwidthウィンドウ幅 objの作成するウィンドウの幅と高さをピクセルサイズで指定します。
intheightウィンドウ高さ
obj.window.Position(int x, int y)
引数意味備考
intxウィンドウx座標 objの作成するウィンドウの表示座標をピクセルサイズで指定します。
スクリーンの左上が原点(0,0)となります。
intyウィンドウy座標

eventクラス

オブジェクトの初期化、計算、描画、マウス、キーボードの動作を登録する関数群です。引数は関数ポインタになります。

obj.event.Init(void (*func)(void))
引数意味備考
void*func初期化処理を定義した関数ポインタ ウィンドウ作成時に一度実行する関数を登録する関数です。
停止の際にもここで登録した関数が呼び出されます。
obj.event.Calculate(void (*func)(void))
引数意味備考
void*func計算処理を定義した関数ポインタ 内部処理を行う関数を登録する関数です。
setAnimationTime()関数で設定した秒毎に呼び出されます。
obj.event.Display(void (*func)(void))
引数意味備考
void*func描画処理を定義した関数ポインタ 無効領域が発生したとき実行する関数を登録する関数です。
Update()関数が呼び出されたときにも、ここで登録した関数が呼び出されます。
obj.event.Mouse(void (*func)(UINI state, int x, int y))
引数意味備考
void*funcマウス処理を定義した関数ポインタ マウスの動作の関数を登録する関数です。
stateの定義は下記の表を参照ください。
座標(x,y)はウィンドウの左上を(0,0)としたスクリーン座標値です。
UINTstate マウス動作を表すマクロ
intxマウス動作を行ったx座標
intyマウス動作を行ったy座標
引数stateの動作一覧
マクロ動作
WM_LBUTTOMUP左クリックを押した
WM_LBUTTOMDOWN左クリックを離した
WM_RBUTTOMUP右クリックを押した
WM_RBUTTOMUP右クリックを離した
WM_MBUTTOMUP中央クリックを押した
WM_MBUTTOMDOWN中央クリックを離した
WM_MOUSEMOVEウィンドウ内でマウスを動かした
WM_NCMOUSEMOVEウィンドウ外でマウスを動かした
obj.event.Keyboard(void (*vpFunc)(UINT state, WPARAM wp, LPARAM lp))
引数意味備考
void*funcキーボード処理を定義した関数ポインタ キーボードの動作の関数を登録する関数です。
キーを押すとwpには対応するASCIIコードが入ります。
またEnterやスペースキーなどのシステムキーは仮想キーコードが入ります。
定義は下記の表を参照ください。
UINTstateキーボード動作を表すマクロ
WPARAMwpASCIIコードまたは仮想キーコード
LPARAMlp
引数stateの動作一覧
マクロ動作
WM_CHARキー動作がなされた
引数wpの定義一覧
マクロ動作
VK_RETURNEnterキー
VK_SPACEスペースキー
※他のシステムキーについてはwinuser.hファイルに定義されているので必要に応じて参照ください。
※lpは高度なので使うことはありません。必要に応じて各自調べてください。

movieクラス

ウィンドウのマルチメディア制御を行う関数群

obj.movie.uElapse
変数意味備考
unsigneduElapse更新秒[msec]uElapse[msec]毎にevent.Calculate()に登録した関数を実行します。
絶対的ではなく環境に依存します。CPU使用率100%の場合、それ以上の速度で実行はできません。
obj.movie.start(void)
備考
スレッドを再生させます。
obj.movie.suspend(void)
備考
スレッドを停止させます。
obj.movie.stop(void)
備考
スレッドを停止させ、event.Init()で登録した関数を呼び出します。
obj.movie.nextFrame(void)
備考
1フレームだけ再生させます。

DRAW_PS描画関数

obj.SetPen(int fnPenStyle, int nWidth, COLORREF crColor)
引数意味備考
intfnPenStyleスタイル ペンを設定する関数
色はRGB(R,G,B)のように指定します。
R,G,Bは0〜255の範囲で数値が低いほど暗く、高いほど明るくなります。
赤はRGB(255, 0, 0)のようになります。
intnWidth太さ
COLORREFcrColor
スタイル
動作機能
PS_SOLID    
PS_DASH-------
PS_DOT・・・・・・・
PS_DASHDOT-・-・-・-
PS_DASHDOTDOT-・・-・・-
PS_NULL透明(楕円や長方形の枠線を描きたくない時に使用)
obj.SetBrush(int fnStyle, COLORREF crColor)
引数意味備考
intfnStyleスタイル ブラシを設定する関数
色はRGB(R,G,B)のように指定します。
COLORREFcrColor
スタイル
動作機能
BS_SOLIDべた塗り
HS_BDIAGONAL45度の右下がりのハッチ
HS_CROSS水平と垂直のクロスハッチ
HS_DIAGCROSS45度のクロスハッチ
HS_FDIAGONAL45度の右上がりのハッチ
HS_HORIZONTAL水平ハッチ
HS_VERTICAL垂直ハッチ
BS_NULL空白
obj.DrawLine(double x1, double y1, double x2, double y2)
引数意味備考
doublex1始点のx座標 線を表示する関数
doubley1始点のy座標
doublex2終点のx座標
doubley2終点のy座標
obj.DrawPixel(double x, double y, COLORREF crColor)
引数意味備考
intx点のx座標 点を表示する関数
色はRGB(R,G,B)のように指定します。
inty点のy座標
COLORREFcrColor
obj.DrawVector(double x1, double y1, double x2, double y2)
引数意味備考
doublex1始点のx座標 ベクトルを表示する関数
doubley1始点のy座標
doublex2ベクトルのx成分
doubley2ベクトルのy成分
obj.DrawRectangle(double x1, double y1, double x2, double y2)
引数意味備考
doublex1左上のx座標 長方形を表示する関数
doubley1左上のy座標
doublex2右下のx座標
doubley2右下のy座標
obj.DrawEllipse(double x1, double y1, double x2, double y2)
引数意味備考
doublex1外接する長方形の左上のx座標 楕円を表示する関数
doubley1外接する長方形の左上のy座標
doublex2外接する長方形の右下のx座標
doubley2外接する長方形の右下のy座標
obj.DrawText(int x, int y, char *str)
引数意味備考
intx表示位置のx座標 テキストを表示する関数
inty表示位置のy座標
char*str文字列ポインタ
obj.EraseOrbit()
備考
軌跡を消去する関数

beach描画関数

obj.beachIPM(double x1, double y1, double z1, double x2, double y2, double z2)
引数意味備考
doublex1視点のx座標 カメラを設定する関数
doubley1視点のy座標
doublez1視点のz座標
doublex2焦点のx座標
doubley2焦点のy座標
doublez2焦点のz座標
マウスイベントを設定しない場合以下の動作が可能です。
動作機能
左ドラッグ焦点を中心に視点を回転させます
右ドラッグ焦点を平行移動させます
左右ドラッグ焦点と視点の距離を、視点の移動で行います
右左ドラッグ焦点と視点の距離を、焦点の移動で行います
左ダブルクリック初期焦点、初期視点に戻します

特殊関数

obj.Update()
備考
無効領域を発行します

【警告】
DRAW_PSスタイルにおいてevent.Display()に登録する関数の中に、この関数を記述しないでください。
無限ループに陥り画面がフラッシュします。

obj.CloseWindow(char* str)
引数意味備考
char*str文字列ポインタ エラーを起こしたときに終了させる関数。
通常、exit(1)を利用しても終了は可能ですが、ウィンドウアプリケーションにおいては行儀が悪いのでこの関数を利用します。
strにエラー内容を指定するとメッセージボックスが立ち上がりエラーが起きたことを知らせてから終了します。
またstrにNULLを指定するとメッセージボックスは立ち上がらず、すぐに終了します。

作成日:2009年2月25日
更新日:2009年3月31日