The reason it gets slower the closer you are is because the magnitude has changed due to the distance ... an example would be a 60 degree FOV, well in the distance you could see 1000's of objects and up close you could only see one or two, that fill the screen. So the solution to your problem would be to use a distance formula on the rate. So if we know that our entity is 100 units away from the vector then we know we are 100% away from the vector and our rate would start at the minimum based off of our distance as the distance becomes closer then the rate would increase until we eventually snap into place(1 value) ... so without any programming I would outline the following:
1) StartDistance = 100% = Rate: 0 (known value)
2) CurrentDistance ( variable X) = ?% (unknown value)
3) FinishDistance = 0% = Rate: 1 (snap) (known value)
Forumula =
rate = 1 - (CurrentDistance/StartDistance))
this would interpolate the rate according to the distance so if you are at the object or the intended distance (finish distance) you would have a rate of 1 -- so lets do a math test with made up distances starting at 100:
rate = 1 - (75 units/100 units)
rate = .25
so if you are 75 units aways from your intended target and you started at 100 then the rate would be .25 (works so far)
rate = 1 - (50 units/100 units)
rate = .5
we are now half way there !!
rate = 1 - (0 units/100 units)
rate = 1
we have made it !!! a very smooth transition ...
anyway this is just plain theory, you would have to test it .. don't have a clue if it works heheh :)
1) StartDistance = 100% = Rate: 0 (known value)
2) CurrentDistance ( variable X) = ?% (unknown value)
3) FinishDistance = 0% = Rate: 1 (snap) (known value)
Forumula =
rate = 1 - (CurrentDistance/StartDistance))
this would interpolate the rate according to the distance so if you are at the object or the intended distance (finish distance) you would have a rate of 1 -- so lets do a math test with made up distances starting at 100:
rate = 1 - (75 units/100 units)
rate = .25
so if you are 75 units aways from your intended target and you started at 100 then the rate would be .25 (works so far)
rate = 1 - (50 units/100 units)
rate = .5
we are now half way there !!
rate = 1 - (0 units/100 units)
rate = 1
we have made it !!! a very smooth transition ...
anyway this is just plain theory, you would have to test it .. don't have a clue if it works heheh :)