物理エンジンで何やろう?

 ODEで物体を生成したりジョイントをつけたり出来るようになった。

基本的なことは大体わかったのであとは実践あるのみ。

でも何しよう?

当初の目的はロボットとか車とか作って、遺伝的アルゴリズムで動作を学習させる、というものだったのだが、具体的なものを思いつかない。

うーん・・・。
ジャジャガッチ | C/C++ | 11:49 | comments(0) | trackbacks(0) |

ODE 箱200個

 一応オブジェクト指向を意識して作っている。

箱200個


ジャジャガッチ | C/C++ | 10:00 | comments(0) | trackbacks(0) |

ODE 今日の成果

 
ボール200個。

結構大変だった。
ジャジャガッチ | C/C++ | 20:23 | comments(0) | trackbacks(0) |

最小限のODEプログラム

 最小限のODEプログラムを作った。僕はいつもここから始める。

コンパイルするとき、プリプロセッサの定義にdDOUBLEを入れておくこと。

実行すると、



こういうものが表示される。雲は流れているが、実際には時間は進んでいないようだ。

このコードに肉付けしていくことにする。

#include <ode/ode.h>
#include <drawstuff/drawstuff.h>
#include <iostream>
using namespace std;

#ifndef DRAWSTUFF_TEXTURE_PATH
#define DRAWSTUFF_TEXTURE_PATH "C:¥¥Users¥¥gacchi¥¥Documents¥¥ode-0.11.1¥¥drawstuff¥¥textures"
#endif

// ステップごとに呼ばれる関数
static void simLoop(int pause)
{
}

//初期化関数
void start()
{
}

int main(int argc, char **argv)
{
    //シミュレーションの準備********************************************************
    dsFunctions fn;
    fn.version = DS_VERSION;    // ドロースタッフのバージョン
    fn.start   = &start;        // シミュレーションの初期化の際に呼ばれる関数を登録
    fn.step    = &simLoop;      // ループ中でステップごとに呼ばれる関数を登録
    fn.path_to_textures = DRAWSTUFF_TEXTURE_PATH;//テクスチャへのPATH

    dInitODE(); // ODEの初期化

    //シミュレーションの準備終わり**************************************************


    //シミュレーションの実行********************************************************
    dsSimulationLoop(argc,argv,640, 480,&fn);//シミュレーションループ
    //******************************************************************************
 
   
    //終了処理**********************************************************************
    dCloseODE(); // ODEの終了
    return 0;
}


ジャジャガッチ | C/C++ | 10:06 | comments(0) | trackbacks(0) |

Open Dynamics Engineのインストール

 ODEの参考書「簡単!実践!ロボットシミュレーション」(出村公成)が届いた。

インストール方法の詳しい解説を期待していたのだがなかった。

著者のWebサイトに詳しいインストール方法は書いてあるが、僕はうまくいかなかった。

VC++でビルドする際、ターゲットをDebugDoubleLibにするようにとあるが、

それだとうまくいかなかった。

DebugDoubleDllで、ランタイムライブラリをマルチスレッドデバッグDLLにすると
うまくいった。

自作プログラムでもマルチスレッドデバッグDLLとすることを忘れずに!

サンプルコードの実行結果↓



ボールが跳ねます。

サンプルのコンパイルも成功したし、グラフィックボード(GTS250)の導入も完了し、準備万端です。

さぁ、遊ぼう!
ジャジャガッチ | C/C++ | 22:52 | comments(0) | trackbacks(0) |

G4THitsCollection修正

 G4THitsCollection.hをまるまるコピーしてMyHitsCollection.hを作成した。

class名は

G4THitsCollection=>MyHitsCollection

とした。new、deleteのオーバーロード部分で不具合が起こっているようなので、

new、delete関連部分をコメントアウトしてデフォルトのものを使うことにした。

パフォーマンスは落ちると思うが仕方ない。
ジャジャガッチ | Geant4 | 19:41 | comments(0) | trackbacks(0) |

Open Dynamics Engine

 Box2Dをいじってたんだけど可視化が面倒くさい。

サンプルや資料が少なくて勉強が大変そうなのでやめようかな・・・。

そんなに本気でやる気はなくてちょっと遊びたいだけだから余計なことであまり苦労したくない。

で、Open Dynamics Engineという物理エンジンをみっけた。

日本語の本も発見したので早速Amazonに注文した。

こっちを試してみよう。
ジャジャガッチ | C/C++ | 21:13 | comments(0) | trackbacks(0) |

G4THitsCollection

SensitiveDetectorの勉強をしていて、うまくいかなかったことがある。

 G4THitsCollection<G4VHit> *h = new G4THitsCollection<G4VHit>();

とするとコンパイルは通るが、実行すると異常終了する。

 G4THitsCollection<G4VHit> h;

とすると正常に動くようだ。なぜだ?

とりあえずはnewしないことにする。

G4THitsCollectionを使わなくてもG4VTHitsCollectionを継承して自作することも出来るようだから時間のあるときに自作してみるか。
ジャジャガッチ | Geant4 | 21:09 | comments(0) | trackbacks(0) |

Box2Dインストール

 Box2Dのサイトにいって、Box2D_v2.2.1.zipを落としてきた。

よくわからんが、BuildというフォルダにVSプロジェクトのファイルがあるので
コンパイルした。

そしたらReleaseフォルダにTestbed.exeというファイルが出来ていたので実行してみると


こんなん出てきた。真ん中から粒子が湧き出している。

箱はくるくる回って、それに伴って粒子が流れていく。

これでライブラリが利用できるようになったのかな?
ジャジャガッチ | C/C++ | 20:54 | comments(0) | trackbacks(0) |

光学の原理

 最近「光学の原理」(Max Born,Emil Wolf)という本を買った。全三巻。

幾何光学、波動光学の教科書で、きちんと電磁場から始まっている。

Maxwell方程式の近似として幾何光学が成立する旨がきちんと書かれている。

とりあえず一巻はざらっと目を通した。

おすすめ。

あと、つい「光学」(ヘクト)全三巻も買ってしまった。こっちも読まねば。
ジャジャガッチ | 物理 | 20:40 | comments(0) | trackbacks(0) |
1/3PAGES | >> |

12
--
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
--
>>
<<
--
PR
RECOMMEND
RECENT COMMENT
MOBILE
qrcode
OTHERS
Since 2013/09/17
LATEST ENTRY
CATEGORY
ARCHIVE
LINKS
PROFILE
SEARCH