Visual Tools
Calculators
Tables
Mathematical Keyboard
Converters
Other Tools


Transformations of Functions


Quadratic
f(x) = x²g(x) = (x)²
×
880 × 600
Applieda=1k=0b=1h=0
Vertical scaleMultiplies output by a — stretches, compresses, or flips the curve vertically.Vertical shiftAdds k to output — slides the whole curve up or down.Horizontal scaleScales the input — squeezes, stretches, or flips horizontally (opposite of vertical scale).Horizontal shiftSubtracts h from input — slides the curve left or right.CustomAll four transformations combined.







Getting Started with the Visualizer

Open the page and three panels appear. On the left is the base function picker — every family the visualizer supports (linear, quadratic, cubic, reciprocal, exponential, logarithmic, sine, cosine, absolute value, square root). In the center is the plot panel with two curves: a dashed gray line showing the untransformed base f(x)f(x), and a solid blue curve showing the transformed g(x)g(x). On the right is the info panel with a contextual explanation of whatever transformation you are currently studying.

Below the plot sit two interactive strips. The applied chip strip shows the current values of all four transformation parameters (aa, kk, bb, hh), with active (non-default) parameters highlighted in blue. Below it, a tab bar lets you isolate one transformation at a time or jump to a Custom tab where all four work simultaneously.

The page launches with quadratic as the base and all parameters at defaults — g(x)g(x) sits exactly on top of f(x)f(x). Drag any slider and the blue curve separates from the gray.

Picking a Base Function

The picker on the left lists ten base function families, with sine and cosine grouped together under "Trigonometric". Each entry shows a small glyph of the family's characteristic shape. Click to switch — the plot resets the transformed curve to match the base, and all four transformation parameters return to their defaults (a=1a = 1, b=1b = 1, h=0h = 0, k=0k = 0).

The base function controls only the *starting shape*. The four transformations work the same way for every family: aa scales vertically, kk shifts vertically, bb scales horizontally, hh shifts horizontally. What changes between families is how those transformations affect family-specific features — moving the vertex of a parabola, the asymptote of a reciprocal, the midline of a sinusoid, or the domain start of a square root.

Switching base functions resets parameters but preserves the active tab, so you can compare the same transformation across different bases without losing your place.

The Four Tabs and the Custom Tab

Five tabs sit below the plot, controlling which transformation you study:

Vertical scale — isolates aa. Only the slider for aa appears; kk, bb, hh stay at their defaults
Vertical shift — isolates kk
Horizontal scale — isolates bb
Horizontal shift — isolates hh
Custom — shows all four sliders at once for combined transformations

When a single transformation has a non-default value, its tab badge shows that value in monospace. Switching tabs does not reset parameters — values you set in one tab persist when you move to another, so you can build up multiple transformations even from the single-parameter tabs.

The Reset button inside each tab resets only that tab's parameter; the Custom tab's Reset resets all four.

Manual vs Auto Mode

Each single-parameter tab (everything except Custom) has a Manual / Auto toggle at the top.

Manual — the default. Drag the slider yourself. Every drag updates the plot, the equation, and the info panel.
Auto — the slider becomes a playback control. Three buttons appear: step backward, play/pause, and step forward. Pressing play animates the parameter back and forth across its full range, ping-ponging between min and max indefinitely. The plot updates frame by frame, so you see exactly what the transformation does as the parameter sweeps.

Auto mode is the fastest way to build intuition for a single transformation. Set aa to auto and watch the parabola stretch, compress, and flip across the xx-axis without your hands leaving the keyboard. Custom tab does not support Auto — combined transformations are designed for manual exploration.

Reading the Two Curves

The plot always shows two curves at once:

Dashed gray curve — the untransformed base function f(x)f(x). Stays fixed regardless of parameter values, so you always have a reference for what the transformation is doing
Solid blue curve — the transformed function g(x)=af(b(xh))+kg(x) = a \cdot f(b(x - h)) + k. Moves, stretches, and flips as you adjust parameters

Two equation badges in the plot header label the curves: the gray base equation (e.g., f(x)=x2f(x) = x^2) and the blue transformed equation, which rewrites symbolically every time a parameter changes. When all four parameters are at their defaults, the equations are identical and the curves overlap exactly.

Crosshair, axis labels, and curve tooltips work the same as in any other visualizer in the series — mouse over the blue curve to read off g(x)g(x) at the cursor position.

The Applied Chip Strip

Just below the plot, a horizontal strip labeled "Applied" shows four chips: one each for aa, kk, bb, and hh. Each chip displays the parameter's current value in monospace.

When a parameter is at its default (a=1a = 1, b=1b = 1, h=0h = 0, k=0k = 0), its chip is grayed out — indicating that no transformation is currently being applied in that direction. When a parameter is non-default, its chip lights up blue and bolds, making the active transformations scannable at a glance.

The chip strip is especially useful in Custom mode, where multiple transformations can compound. A glance at the chips tells you exactly which transformations are active and at what magnitude, without having to read off four sliders.

The Side Info Panel

The info panel on the right reads the current tab and the current base function and assembles a contextual explanation in two parts:

General — what this transformation does, independent of the base function. The formula, the qualitative effects of positive and negative parameter values, the conditions for stretches versus compressions, and reflections
Applied to [base] — what this specific parameter value does to *this* specific function family. The vertex of the parabola moves to (h,k)(h, k), the amplitude of the sine becomes a|a|, the vertical asymptote of the reciprocal moves to x=hx = h, and so on

When the parameter is at its default, the applied section reminds you that no transformation has been applied yet and prompts you to move the slider. Switch to the Custom tab and the info panel lists every non-default transformation in one place, each with its general formula and family-specific consequence.

The Four Transformations Mathematically

The transformed function is

g(x)=af(b(xh))+kg(x) = a \cdot f(b(x - h)) + k


Each parameter controls one type of transformation:

$a$ — vertical scale and reflection. Multiplies outputs by aa. a>1|a| > 1 stretches vertically; a<1|a| < 1 compresses; a<0a < 0 reflects across the xx-axis.
$k$ — vertical shift. Adds kk to every output. Positive kk moves the curve up, negative moves it down. Shape is unchanged.
$b$ — horizontal scale and reflection. Multiplies inputs by bb. b>1|b| > 1 *compresses* horizontally (counterintuitive); b<1|b| < 1 stretches; b<0b < 0 reflects across the yy-axis.
$h$ — horizontal shift. Subtracts hh from the input. Positive hh moves the curve *right* (the minus sign in f(xh)f(x - h) is the source of the inversion).

The four transformations commute in pairs (vertical with horizontal) but not across axes. The order in g(x)=af(b(xh))+kg(x) = a \cdot f(b(x - h)) + k is the canonical convention.

Why Horizontal Transformations Are "Backwards"

The most common stumbling block in function transformations is that horizontal operations behave opposite to what intuition suggests:

• Replacing xx with xhx - h moves the graph right by hh, not left
• Replacing xx with bxbx where b>1b > 1 compresses the graph horizontally, not stretches it

The reason is that the substitution acts on the *input* axis, not the output. If you want gg to take value f(0)f(0) at x=hx = h (i.e. move that feature right to hh), you need g(h)=f(0)g(h) = f(0), which means the input to ff must equal 00 when x=hx = h — hence f(xh)f(x - h). Similarly, if bb doubles, you reach the same input value of ff in half the distance, so the curve compresses.

The visualizer makes this concrete: drag hh to +3+3 and watch the curve slide right by three units, in spite of the minus sign in the formula. Setting bb to auto and watching it sweep through the same effect is the quickest cure for the confusion.

Related Concepts and Tools

Functions Families Gallery — companion tool plotting twelve standard function families with parameter sliders; the natural prerequisite for this visualizer.

Functions — general theory of functions: domain, range, composition, inverses.

Graphing Functions — broader treatment of graph features (intercepts, asymptotes, end behavior) that transformations preserve or change.

Parent Functions — the canonical untransformed members of each family used as the starting point here.

Composition of Functions — how function composition relates to and generalizes the four affine transformations.

Inverse Functions — reflecting a graph across the line y=xy = x, a transformation not covered here but built from the same conceptual toolkit.

Equation and Inequality Visualizers — companion tools for solving f(x)=nf(x) = n and f(x)>0f(x) > 0 across all the same function families.