3
私はの春の規制をテストしたいです。Bullet Physicsだから私は静的な箱を地面の上に置いて、それからぶら下がっている第二の動的な箱を作りました。しかし、春の行動を活性化することは何もしません!箱は実際に自由にぶら下がっている。自由に回転するので私はそれを知っています。しかし、それは振動するものではありません。Bullet Physicsでばねの拘束を設定するには?
btCollisionShape *boxShape = createBoxShape(0.2f, 0.2f, 0.2f);
btRigidBody *box1 = createStatic(boxShape);
btRigidBody *box2 = createDynamic(1.0f /*mass*/, boxShape);
box1->setWorldTransform(btTransform(btQuaternion::getIdentity(), { 0.0f, 2.0f, 1.0f }));
box2->setWorldTransform(btTransform(btQuaternion::getIdentity(), { 0.0f, 1.0f, 1.0f }));
btGeneric6DofSpring2Constraint *spring = new btGeneric6DofSpring2Constraint(
*box1, *box2,
btTransform(btQuaternion::getIdentity(), { 0.0f, -1.0f, 0.0f }),
btTransform(btQuaternion::getIdentity(), { 0.0f, 0.0f, 0.0f })
);
// I thought maybe the linear movement is locked, but even using these lines do not help.
// spring->setLinearUpperLimit(btVector3(0.0f, 0.1, 0.0f));
// spring->setLinearLowerLimit(btVector3(0.0f, -0.1, 0.0f));
// Enabling the spring behavior for they y-coordinate (index = 1)
spring->enableSpring(1, true);
spring->setStiffness(1, 0.01f);
spring->setDamping (1, 0.00f);
spring->setEquilibriumPoint();
どうしたのですか?私はStiffness
とDamping
のパラメータで多くを演奏しました。しかしそれは何も変えなかった。線形の下限と上限を設定すると、ボックスはy方向に移動可能になりますが、まだ振動しません。そして、はい、重力が活性化されます。