[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
PyDrawStuffはVPythonを使った、OpenDynamicsEngine用の3D描画ソフトウェアです。
今日の朝説明できなかったPyDrawStuffの仕様について説明します。
PyDrawStuffで出来ることは以下の通りです。
1. グラフ描画(複数も可、リアルタイムで描画)
2. スライダー、ボタンのGUI
3. ゲームパッド(十字キー、ジョイスティック、ボタン)
4. 効果音を鳴らす(バグあり)
実装はできますが、現在のところ未実装なことは以下の通りです。
1. 立方体、カプセル、円柱、球以外の図形の描画
2. 文字描画
3. 矢印描画
4. 多視点カメラ
5. キーボード入力
6. ヒストグラム
7. マウス入力
8. 3Dの文字表示
9. パフォーマンス測定
ほとんど実装できてないじゃないかと言う人がいるかどうかは分かりませんが、要望がない限り実装しません。
なお、本家のDrawStuffとは全く使う関数が違うので注意してください。
似ているのは名前だけです。
PyDrawStuffで使えるクラスは以下の通りです。
DrawBody : 図形描画クラス
glaph: グラフ作成クラス
controls: GUI作成クラス
Joystic: ジョイスティッククラス
Music: 音クラス
基本的に使うのはこれらのクラスのメンバ関数だけです。
DrawBody draw;
などとしてオブジェクトを作った後、
draw.init(500,200,500,500,2.5,vec);
などとして使ってください。
DrawBodyのメンバ関数は、
void init(int x, int y, double width, double height, double range, double *vec);
void init(画面のx座標, y方向の座標 画面の幅, 画面の高さ ,レンジ率, 視線の方向); 初期化(レンジ率1.0のときは、描画した物体が画面にピッタリ収まります。)
void drawBox(dBodyID body, dReal *sides, double *color);
void drawBox(ボディ 幅奥行き高さ, 色); 立方体描画
void drawSphere(dBodyID body, dReal r, double *color);
void drawSphere(ボディ, 半径 , 色); 球描画
void drawCylinder(dBodyID body, dReal r, dReal l,int direction, double *color);
void drawCylinder(ボディ, 半径 ,高さ,長軸方向, 色); 円柱描画
void drawCapsule(dBodyID body, dReal r, dReal l, int direction, double *color);
void drawCapsule(ボディ, 半径, 高さ, , 長軸方向, 色); カプセル描画
void CreateGround(double *w, double *color);
void CreateGround(幅奥行き高さ, 色); 地面作成
このうち、初期化と地面作成は毎ステップごとにする必要はないです。
続いて、glaphのメンバ関数は、
void init(); 初期化
void CreateGraph(int x, int y, double xmin, double ymin, double xmax, double ymax,double width, double height, const char *xtitle, const char *ytitle);
void CreateGraph(画面のx座標, x軸最小値, y軸最小値, x軸最大値, y軸最大値,画面の幅, 画面の高さ ,x軸タイトル, y軸タイトル); グラフの作成
void CreateCurve(double *color, int num);
void CreateCurve(線の色, 描画するグラフ); グラフに曲線を追加
void drawcurve(double x, double y, int num);
void drawcurve(点x 点y,描画する曲線); 点x,yにプロットする
なお、グラフ、曲線の番号は作成した順につきます。
続いて、controlsクラスのメンバ関数は、
void init(); 初期化
void CreateControls(int x,int y,double width,double height,double range);
void CreateControls(画面のx座標, y方向の座標 画面の幅, 画面の高さ,レンジ率); コントロールを置く画面を作成
void Createbutton(double *pos, int num,double height, double width, const char *text, int cnum);
void Createbutton(位置, 画面の番号,高さ, 幅, 名前, ボタンの番号); ボタンの作成
void Createslider(double *pos, int num,double height, double width,double *axis , int cnum);
void Createslider(位置, 画面の番号,高さ, 幅, 名前, 長軸方向,スライダーの番号); スライダーの作成
int BReturn(int num);
int BReturn(ボタンの番号); ボタンが押されていたら1,押されていなかったら0を返す。
double CReturn(int num);
int CReturn(スライダーの番号); スライダーの移動距離を返す
void interact(int num);
void interact(画面の番号); コントロールの更新
interactはステップごとに行ってください。
続いて、Joysticのメンバ関数です。
void init(); 初期化
int *ReturnJ(); ジョイスティックの傾いた方向を4つの配列で返す
int *ReturnA(); 十字キーの押した方向を4つの配列で返す
int *ReturnB(); 押したボタンを8つの配列で返す。
void execu(); 更新
execuは毎ステップ行ってください。
最後にMusicのメンバ関数です。
void init(); 初期化
void Mload(const char *c, int num);
void Mload(ファイル名, 番号); BGMをロード
void Sload(const char *c, int num);
void Sload(ファイル名 番号); 効果音をロード
void sound(int num);
void sound(番号); 効果音を鳴らす
void music(int num);
void music(番号); BGM再生
この通りです。
インストールの仕方は次の記事で。
ランキングに参加してます。押していただけると今まで経験がないくらい嬉しいです。
にほんブログ村
HPからダウンロードできます。
このソフトウェアには、
Python2.4以上
Pygame(機能を制限するならなくても可)
VPython
Boost
Open Dynamics Engine
が必要です。
・・・・多いなあ。
仕様を説明したいところですが、本気で授業に遅刻しそうなので帰ってからします。
========================================
追記
仕様とインストールの方法を書いときました。
========================================
ランキングに参加してます。押していただけると今まで経験がないくらい嬉しいです。
にほんブログ村
数日前に書いたと思いますが、ロボットのリンクパラメータ、リンク形状を設計するツールの制作中です。
2月中旬にはできると思いますが。
最終的にはRTミドルウェアを設計した図に組み込むみたいなことができたら・・・・・・かえって不便か。
シミュレータ使うこと前提なら便利そうなんだけどなあ。
あと、PyDrawstuffは今日リリースします。
正直、3割ぐらいしかできてないのですが、徐々に「これは使ってもらえないな」みたいな感じになってきたので、この辺で切り上げます。
今回の制作でBoostとVPythonの使い方が理解できたので個人的には満足です。
ランキングに参加してます。押していただけると今まで経験がないくらい嬉しいです。
にほんブログ村
最近、寝ると風呂入る以外ほとんどロボットのこと考えたり、ソフトウェア作ってみたりですねえ。
というより、午前4時に起きてるあたり睡眠時間も削ってるので実質1日中ですが・・・・
最近、マリーンズネタの記事もあんまり書きませんしね。
ブログ書いてる時ぐらいですかね・・・サボってるのは。
卒業研究の計画書みたいなの作ったわけだが、どこまで出来るのかさっぱりわからん。
できてから見返してみると、「これ10年分ぐらい進めるんじゃない?」という理不尽な計画だと気づいたんだがこのまま先生に出します。
・・・・・多分、突っ返されるだろうなあ。
ランキングに参加してます。押していただけると今まで経験がないくらい嬉しいです。
にほんブログ村
2月12日がROBOMECの講演申し込み締め切りで、どうせまた更新できなくなるので今のうちに蓄えておこうかと。
で、数日前から制作しているPyDrawstuffですが、骨格ぐらいはできました。
このぐらい誰でも出来るだろバーカ
と言われそうな動画ですが。まんまVPythonだろって。
とは言っても、後は細かい作業だけなので試用版ぐらいは今週中に公開できます。
さて・・・・・何人使うかな?目標は3人。
ランキングに参加してます。押していただけると今まで経験がないくらい嬉しいです。
にほんブログ村