Without obstacles you can solve this in constant time. You'll have to work the details out, but the idea is that in two moves if you want to cover distance you can move 4 steps in one direction and 0 or 2 in the either, or 3 steps in each direction. So let's say the distance is (100, 48): You do 24 double moves (4, 2) plus 1 double move (4, 0). Let's say the distance is (100, 60): You move diagonally until one distance is half the other, say 8 double moves (3, 3) leaving a distance of (76, 36) which can be covered in 19 double moves.
You make a small table of how to best cover small distances: (0, 0) takes 0 moves, (1, 0) takes three moves, (1, 1) takes two moves, (2, 0) takes two moves, (2, 1) takes 1 move, (2, 2) takes 4 moves, etc. And you are left with a small number of possibilities how to go a large distance in the fastest way, followed by a small distance.