Open Dynamics Engine


ODEコード集

『C:\ode-0.7\include』にあるヘッダーファイルを確認することで,『ode.lib』および『drawstuff.lib』で使用できるODEコードを確認できる.

地面の粘弾性係数設定 - erpとcfmの設定方法

DT: 刻み時間[sec]
kp: 弾性係数[N/m]
kd: 粘性係数[Ns/m]
erp = DT*kp/(DT*kp+kd);
cfm = 1/(DT*kp+kd);
contact[i].surface.soft_erp = erp;
contact[i].surface.soft_cfm = cfm;


物体姿勢の初期設定〜角度編

void dGeomSetQuaternion (dGeomID, const dQuaternion);
// A quaternion is four numbers [cos( theta /2),sin( theta /2)*u] 
// where theta is a rotation angle and u is a unit length rotation axis.
// 以下は,y軸(0,1,0)周りのtheta1[rad]回転を示している.
qrot1[0]=cos(theta1/2);
qrot1[1]=0*sin(theta1/2);
qrot1[2]=1*sin(theta1/2);
qrot1[3]=0*sin(theta1/2);
dBodySetQuaternion (body[3],qrot1);


『物体中心からの相対位置』の絶対座標

void dBodyGetRelPointPos (dBodyID, dReal px, dReal py, dReal pz, dVector3 result);
dVector3 rpos3;
dBodyGetRelPointPos (body[3],0,0,0.5*Thigh_H, rpos3);

乱数

■ 0から10までの整数
(int)(11*dRandReal())

■ -1.00から+1.00まで0.01刻みの少数
((double)((int)(201*dRandReal()))/100.)-1.

■ 0からNまでの整数
(int)((N+1)*dRandReal())

トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-02-17 (日) 20:37:03 (3357d)