Bullet その7 ヒンジジョイント

Bulet その7はBulletで使えるジョイントのひとつである、ヒンジジョイントを扱います。

ヒンジジョイントは、任意の軸を中心に回転することしか出来ないよう制限します。
ドアのような動きをします。

追加のヘッダ
#include <BulletDynamics/ConstraintSolver/btHingeConstraint.h>

生成方法
btRigidBody body1; //剛体1
btRigidBody body2; //剛体2

btTransform local1; //剛体1のローカル行列
btTransform local2; //剛体2のローカル行列
btTypedConstraint* constraint = new btSliderConstraint( body1, body2, local1, local2 );
constaint->buldJacobian();

g_World->addConstraint( constraint );

削除方法
ポイントジョイントと同じ

制限のかけ方
float low, high; // ラジアンで指定する 範囲は0.0~180.0まで
constraint->setLimit( low, high );

モーターとして使う
float velocity, maxImpulse; //加速度、推進力
constraint->enableAngularMoter( true, velocity, maxImpulse );

動作確認も以前と同様にすると分かりやすいです。

任意の軸を設定するには、剛体1のローカル行列で設定をします。
だたし、各行列に剛体のサイズ分は平行移動させておいたほうがよいです。

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2011年02月13日 21:08
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。