This applet is designed to allow a visual exploration of the problem of fitting a curve to given data by setting parameters. We use the "square root sign" function for baseFunc(x). It is designed as a function where there is a unique way to get any translation or compression as shiftedFunction(x).
The points "DesiredVertex" and "DesiredTop" can be set by dragging. You then manipulate the parameters "a", "b", "c", and "d" with the sliders so that the curve
"shiftedFunction(x) = a*baseFunc(b*(x-c))+d" has "ShiftedTop" equal to "DesiredTop" and "ShiftedVertex" equal to "DesiredVertex".
The "New Problem" button selects random values for the two desired points.
To change the viewing area, select the move tool. (It looks like four arrows.) Clicking and dragging open space moves the window. Clicking and dragging on the axes changes the scale of the axes.

Some sets of data to look at:

Find values of the parameters so that the graph does simple expansions, contractions, and reversals in x.

Find values of the parameters so that the graph does simple expansions, contractions, and reversals in y.

Find values of the parameters so that the graph rotates around each of the 4 points where a line segment ends.