PythonによるOpen Dynamics Engine講座 その12
サンプルプログラムはここ。キー操作のときのプログラムをいじくってます。
円柱のボディ、ジオメトリ
円柱のボディ、ジオメトリを作成するのはdef create_cylinder(self, dn, l, r ,px, py, pz, Mass):です。引数は円柱の長軸方向、長さ、半径、位置x,y,z、質量です。流れは直方体を作ったときと同じです。mass.setCylinder(mass ,dir ,r ,l)の引数は構造体mass,円柱の長軸方向dir(x軸:1、y軸:2、z軸:3)、半径、長さで、ode.GeomCylinder(space, r, l)の引数は衝突計算スペース、半径、長さです。
カプセルのボディ、ジオメトリ
カプセルのボディ、ジオメトリを作成するのはdef create_capsule(self, dn, l, r, px, py, pz,Mass)です。引数はカプセルの兆軸方向、長さ、半径、位置x,y,z、質量です。mass.setCappedCylinde(mass ,dir ,r ,l)とode.GeomCapsule(space, r, l)の引数は円柱と同じです。両端の半球も含めるとカプセルの全長は長さ+半径×2になります。
あと、球を作成するcreate_sphere(self, r, px, py, pz, Mass)も付け足しました。
円柱の描画
drawbody()のmyCylinder(r, l, dn)で描画してます。引数は半径、長さ、長軸方向です。今回からself.bodies[i].shapeが"box"、"sphere"、"cylinder"、"capsule"のどれかによって形状を判別できるようにしています。基本的な流れとしては、
カプセルの描画
myCapsule(r, h, dn)で描画しています。引数は円柱と同じです。基本的流れとしては、
次回はボールジョイント、スライダージョイント、ヒンジ2ジョイント、ユニバーサルジョイントの作成をやります。
PythonによるOpen Dynamics Engine講座に戻る