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

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

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}] `

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

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.