title: Box2D: Applying force at opposite ends of rectangular body in order to achieve 2D drone like simulation. Unable to locate world/local points correctly
body: <p>So I am trying to achieve drone like simulation in libgdx box2d. I want to control forces on two thrusters by individual keys. Here's the code:</p>
  
  <pre><code>if (Gdx.input.isKeyPressed(Input.Keys.Q)) {
      Vector2 point = drone.getWorldPoint(new Vector2(-Constants.DRONE_WIDTH, Constants.DRONE_HEIGHT));
  
      double angle = drone.getAngle();
      float fx = (float) (THRUST_FORCE * Math.cos(angle));
      float fy = (float) (THRUST_FORCE * Math.sin(angle));
      Vector2 force = new Vector2(fx, fy);
  
      drone.applyForce(point, force, true);
  }
  
  if(Gdx.input.isKeyPressed(Input.Keys.UP)) {
      Vector2 point = drone.getWorldPoint(new Vector2(Constants.DRONE_WIDTH, Constants.DRONE_HEIGHT));
  
      double angle = drone.getAngle();
      float fx = (float) (THRUST_FORCE * Math.cos(angle));
      float fy = (float) (THRUST_FORCE * Math.sin(angle));
      Vector2 force = new Vector2(fx, fy);
  
      drone.applyForce(point, force, true);
  }
  </code></pre>
  
  <p>So in theory body should move up when both keys pressed without any rotation. But only the left end lifts up whether I press Q or UP key. Right end never gets lifted. So I think force is applied at wrong points. I don't know why this is happening. Please help!!!</p>
  
  <p>EDIT: Another strange thing:</p>
  
  <pre><code>Vector2 force = new Vector2(0, THRUST_FORCE);
  drone.applyForce(drone.getWorldCenter(), force, true);
  </code></pre>
  
  <p>When I do this, still only the left ends lifts up!!!!</p>