How to straighten a curve?

What’s the easiest way to get the following animation for a given parabola

enter image description here

My main goal is the following, given a set of random points and a set of points following a parabola, I want to "straighten" the parabola and all the surrounding points according to the straightening of that parabola. Consider the following schematic

enter image description here

For instance, we could consider the points as a starter

f[x_, a_, b_] := a x^2 + b; pts1 = RandomReal[{-1, 1}, {150, 2}]; ptsf = RandomReal[{-1, 1}, 50]; pts2 = Map[{#, f[#, .5, -.5]} &, ptsf]; Graphics[{Gray, Point /@ pts1, Red, Point /@ pts2}] 

enter image description here

Where the red dots follow a parabola. How do change pts1 based on a and b? From such a pattern, I’d expect, after the transformation, to get something like

enter image description here

where the dots are sparser above the line and denser below it. I tried to make it work by using preservation of the arc length somehow, but it’s too slow.