Reputation: 72
I am trying to give back and forth motion of a body connected via revolute joint. I was trying to set reference to zero, when simulation starts 45 degree in clockwise then in anticlockwise back to reference and 45 degree anticlockwise from reference. i want Click the imgage,in which 0 is reference the 45 degre to 1,45 degree back i.e 2,then 45deg clockwise and then back to reference I tried this
RevoluteJointDef revoluteJointDef = new RevoluteJointDef();
revoluteJointDef.initialize(ballBody,rectBody,new Vector2(25,30));
revoluteJointDef.lowerAngle=0.785f;
revoluteJointDef.upperAngle=0.785f;
revoluteJointDef.localAnchorA.set(25,30);
revoluteJointDef.enableMotor=true;
revoluteJointDef.enableLimit=true;
revoluteJointDef.maxMotorTorque=1000f;
revoluteJointDef.motorSpeed=12.6f;
revoluteJointDef.referenceAngle=0f;
Upvotes: 1
Views: 384
Reputation: 384
you can get back and forth motion by giving motor speed in two direction let's say you first want move in -45degree you can do this by
revolutejoint.setMotorSpeed=-12f;
remeber first set the limit and use above example,then you can ask for current angle of joint and based on that you can reverse the motor speed like
if(revoluteJoint.getAngle<=45)
revolutejoint.setMotorSpeed=12f;
always use radian for angle, which i haven't shown. if someone know better than this i am glad to know.
Upvotes: 1