Every function family has a simplest member — a parent function that captures the essential shape. The parabola y=x2. The absolute value y=∣x∣. The square root y=x. From each parent, an infinite variety of related functions emerges through transformations: shifts that move the graph, stretches that change its scale, reflections that flip its orientation.
Transformations connect algebra to geometry. A change in the equation produces a predictable change in the graph. Knowing how each transformation works allows sketching complex functions quickly and writing equations from visual information.
Key Terms
The Four Operations
Transformation— any operation that modifies a graph: shift, reflect, stretch, or compress
Translation— sliding the graph horizontally or vertically without changing shape
A parent function is the simplest function representing a family. It captures the essential shape without any shifts, stretches, or reflections.
Common parent functions include:
Linear: f(x)=x — a straight line through the origin with slope 1.
Quadratic: f(x)=x2 — a parabola with vertex at the origin, opening upward.
Cubic: f(x)=x3 — an S-curve passing through the origin with point symmetry.
Absolute value: f(x)=∣x∣ — a V-shape with vertex at the origin.
Square root: f(x)=x — a half-curve starting at the origin, rising and flattening.
Reciprocal: f(x)=1/x — a hyperbola with branches in opposite quadrants.
Exponential: f(x)=ex or f(x)=2x — a curve rising rapidly to the right, approaching zero to the left.
Each parent has characteristic domain, range, symmetry, and shape. Transformations modify these features systematically. Knowing the parent means knowing what to expect from its transformed offspring. The table below collects all seven parents in one place with formula, domain, range, and the geometric feature that identifies each.
Parent
Formula
Domain
Range
Identifying feature
Linear
f(x) = x
ℝ
ℝ
straight line through the origin, slope 1
Quadratic
f(x) = x²
ℝ
[0, ∞)
parabola with vertex at the origin, opens upward
Cubic
f(x) = x³
ℝ
ℝ
S-curve through the origin with point symmetry
Absolute value
f(x) = |x|
ℝ
[0, ∞)
V-shape with vertex at the origin
Square root
f(x) = √x
[0, ∞)
[0, ∞)
half-curve rising from the origin, flattening
Reciprocal
f(x) = 1⁄x
x ≠ 0
y ≠ 0
hyperbola with asymptotes at the axes
Exponential
f(x) = eˣ (or 2ˣ)
ℝ
(0, ∞)
rises rapidly to the right, asymptote y = 0
Transformations Overview
Transformations alter a function's graph in predictable ways. Four basic types cover most modifications:
Translation shifts the graph horizontally or vertically without changing its shape or orientation.
Reflection flips the graph across an axis, reversing its orientation.
Stretch pulls the graph away from an axis, making it taller or wider.
Compression pushes the graph toward an axis, making it shorter or narrower.
These transformations arise from modifying the function's equation. Changes outside the function — operations applied to f(x) — produce vertical effects. Changes inside the function — operations applied to x — produce horizontal effects.
Here a controls vertical stretch and reflection, b controls horizontal stretch and reflection, h controls horizontal shift, and k controls vertical shift. Understanding each parameter's effect enables both graphing from equations and writing equations from graphs.
All four parameters at once
The dashed curve is the parent f(x) = x²; the solid one is g(x) = 0.5 · f(1.5(x − 2)) + 1. Inside the function, h = 2 moves the vertex right and b = 1.5 narrows the curve; outside, a = 0.5 flattens it and k = 1 lifts it. The vertex lands at (2, 1). Set each of a, b, h, k yourself on the transformations explorer.
Every transformation on this page is one of these four parameters at work.
Transformation Notation
Notation
Transformation Notation
Four lowercase knobs, one sign trap, and a minus that flips a different mirror depending on where it stands. The inside/outside split — input changes move horizontally, output changes vertically — is the single rule behind everything here.
f(x), substitution and the letter conventions come from function notation; the domain and range each transformation drags along are written with domain and range notation.
a⋅f(b(x−h))+k
a times f of b times, x minus h, plus k
The four-knob recipe: outside letters (a, k) act on the output and move things vertically; inside letters (b, h) act on the input and move things horizontally — Transformations Overview above assigns each its job.
CasesTrigonometry runs the same machine in capitals — the Asin(Bx−C)+D of sinusoidal graphs; the h,k pair is the one vertex form (x−h)2+k carries. Case is convention; the grammar is identical.
Do not confuseA left-to-right pipeline. The knobs do not apply in reading order — inside transformations act before outside ones, which is why combined problems track Order of Transformations below.
f(x−h)
f of x minus h
The sign trap of the subject: subtracting inside shifts right — (x−3)2 sits three units to the right of x2. Horizontal Translations below explains why the direction inverts; the notation just records the outcome.
CasesLeft shifts hide as negative h: ∣x+2∣ is x−(−2), so h=−2, two units left — reading a shift means first rewriting the inside as a subtraction.
Do not confuseThe vertical twin. Outside, the sign behaves: f(x)+k goes up for positive k, no inversion — importing that intuition inside is exactly how graphs land on the wrong side.
−f(x) vs f(−x)
minus f of x; f of minus x
One minus, two mirrors — position picks the axis: −f(x) negates outputs and flips across the x-axis; f(−x) negates inputs and flips across the y-axis. Vertical Reflections and Horizontal Reflections below draw both.
CasesThe pair doubles as the symmetry test: f(−x)=f(x) declares a function even, f(−x)=−f(x) odd — the checks of graph analysis.
Do not confuseEach other, constantly. For odd functions the two coincide — (−x)3=−x3 hides the difference; testing on a lopsided function like x or ex is the fastest way to see the two mirrors apart.
The dashed parabola is f(x) = x² and the solid one is the same curve lifted 3 units: every point moved straight up by the same amount, the vertex included, and the shape is untouched. A negative k would push it down. Drag k through negative values on the transformations explorer.
The vertical shift is the one transformation that leaves the x-coordinates of every feature alone.
Vertical Translations
A vertical translation shifts the graph up or down. Every point moves the same vertical distance; the shape remains unchanged.
The transformation that shifts the graph of f vertically takes the form:
For f(x)=x2, the function g(x)=x2+3 shifts the parabola up 3 units. The vertex moves from (0,0) to (0,3).
For f(x)=x, the function g(x)=x−2 shifts the curve down 2 units. The starting point moves from (0,0) to (0,−2).
Vertical translation affects the range directly. If f has range [0,∞), then f(x)+k has range [k,∞). The domain is unchanged — shifting up or down does not affect which inputs are valid.
The y-intercept shifts by k: if f(0)=c, then g(0)=c+k. The x-intercepts shift to new locations determined by solving f(x)+k=0.
Horizontal Translations
A horizontal translation shifts the graph left or right. Every point moves the same horizontal distance; the shape remains unchanged.
The transformation that shifts the graph of f horizontally takes the form:
The direction is counterintuitive. Subtracting h inside the function moves the graph in the positive direction. This happens because f(x−h)=f(x) requires x to be h units larger to produce the same output.
For f(x)=x2, the function g(x)=(x−3)2 shifts the parabola right 3 units. The vertex moves from (0,0) to (3,0).
For f(x)=∣x∣, the function g(x)=∣x+2∣ shifts the V-shape left 2 units (since x+2=x−(−2), so h=−2). The vertex moves from (0,0) to (−2,0).
Horizontal translation affects the domain directly. If f has domain [0,∞), then f(x−h) has domain [h,∞). The range is unchanged.
g(x) = f(x − 3)
Subtracting 3 inside the function moves the parabola 3 units to the right, the direction opposite to the sign: the vertex that was at 0 now sits at 3. The graph itself is unchanged, only its position. Watch the vertex slide as h changes on the transformations explorer.
The sign reversal is the single most common source of error on this page.
Vertical Reflections
A vertical reflection flips the graph across the x-axis. Points above the axis move below; points below move above.
The transformation that reflects the graph of f vertically takes the form:
Each output is negated: where f produced y, the reflected function produces −y.
For f(x)=x2, the function g(x)=−x2 reflects the parabola across the x-axis. The original opens upward with vertex at the minimum; the reflection opens downward with vertex at the maximum.
For f(x)=x, the function g(x)=−x reflects the half-curve below the axis. The original has range [0,∞); the reflection has range (−∞,0].
Vertical reflection transforms the range. If f has range [a,b], then −f has range [−b,−a]. The domain is unchanged.
Peaks become valleys and valleys become peaks. An increasing function becomes decreasing, and vice versa. The x-intercepts stay fixed — if f(c)=0, then −f(c)=0 as well.
g(x) = −x²: reflected in the x-axis
Negating the output flips the parabola upside down across the x-axis: points above the axis land the same distance below it, and the vertex stays on the axis. The mirror line is drawn in the picture. Reflect other families in the same line on the reflections explorer.
Reflection is the special case a = −1 of the vertical stretch.
Horizontal Reflections
A horizontal reflection flips the graph across the y-axis. Points on the right move to the left; points on the left move to the right.
The transformation that reflects the graph of f horizontally takes the form:
Each input is negated before the function acts: the output at x equals the original output at −x.
For f(x)=x, the function g(x)=−x reflects the half-curve across the y-axis. The original exists for x≥0; the reflection exists for x≤0.
For f(x)=ex, the function g(x)=e−x reflects the exponential curve. The original rises to the right and decays to the left; the reflection rises to the left and decays to the right.
Horizontal reflection transforms the domain. If f has domain [a,b], then f(−x) has domain [−b,−a]. The range is unchanged.
The y-intercept stays fixed — f(0)=f(−0). The x-intercepts reflect: if f(c)=0, then f(−x)=0 at x=−c.
g(x) = √(−x): reflected in the y-axis
Negating the input mirrors the square root across the y-axis: the curve that rose to the right now rises to the left, and its domain [0, ∞) becomes (−∞, 0]. An even function would be its own reflection here. Reflect the other families in the y-axis on the reflections explorer.
Reflection is the special case b = −1 of the horizontal stretch.
Vertical Stretch and Compression
A vertical stretch or compression changes the height of the graph. The x-coordinates stay fixed while y-coordinates scale.
The transformation that scales the graph of f vertically takes the form:
When ∣a∣>1, the graph stretches vertically — it becomes taller.
When 0<∣a∣<1, the graph compresses vertically, becoming shorter.
When a<0, a reflection across the x-axis also occurs.
For f(x)=x2, the function g(x)=3x2 stretches the parabola vertically by a factor of 3. Points move three times as far from the x-axis. The parabola appears narrower.
For f(x)=sin(x), the function g(x)=21sin(x) compresses the wave vertically. The amplitude decreases from 1 to 21.
Vertical scaling affects the range. If f has range [m,M], then a⋅f has range [am,aM] when a>0, or [aM,am] when a<0.
The x-intercepts remain fixed — scaling zero still yields zero. The y-intercept scales: if f(0)=c, then g(0)=ac.
g(x) = 2f(x)
Multiplying every output by 2 doubles each height: the parabola becomes narrower because it climbs twice as fast, while its x-intercept and vertex on the axis stay put. A factor between 0 and 1 would flatten it instead. Slide a past 1 and below 1 on the transformations explorer.
Vertical stretches change the range; the domain is untouched.
Horizontal Stretch and Compression
A horizontal stretch or compression changes the width of the graph. The y-coordinates stay fixed while x-coordinates scale.
The transformation that scales the graph of f horizontally takes the form:
When ∣b∣>1, the graph compresses horizontally — it becomes narrower.
When 0<∣b∣<1, the graph stretches horizontally, becoming wider.
When b<0, a reflection across the y-axis also occurs.
The effect is counterintuitive: multiplying x by a number greater than 1 makes the graph narrower, not wider. This happens because larger b means reaching the same output values at smaller x values.
For f(x)=x2, the function g(x)=(2x)2=4x2 compresses the parabola horizontally by a factor of 2. Points at x=1 and x=−1 now achieve the heights that f achieved at x=2 and x=−2.
For f(x)=sin(x), the function g(x)=sin(2x) compresses the wave horizontally. The period changes from 2π to π — the wave completes twice as fast.
Horizontal scaling affects the domain. If f has domain [a,b], then f(bx) has domain [a/b,b/b]=[a/b,1] when b>0.
Across the six basic transformations covered in obj3–obj8, a single pattern emerges: operations applied insidef act on the horizontal direction, while operations applied outsidef act on the vertical direction. The table below pairs the inside form with the outside form for each of the three operation types — addition, negation, and scaling.
Operation on the formula
Inside f — horizontal effect
Outside f — vertical effect
Add a constant
f(x − h): shifts horizontally by h (sign reversed — counterintuitive)
a · f(x): scales y-values by a — direct effect (|a| > 1 stretches, 0 < |a| < 1 compresses)
g(x) = f(2x)
Doubling the input compresses the graph horizontally by a factor of 2: the height that x² reaches at x = 2 is now reached at x = 1. Heights are unchanged; positions along the x-axis are halved. Compare with the vertical stretch, which looks similar but moves different points, on the transformations explorer.
Horizontal stretches change the domain; the range is untouched.
Combining Transformations
Multiple transformations can act together. The general form
g(x)=a⋅f(b(x−h))+k
combines all four types:
h: horizontal shift (right if positive, left if negative)
k: vertical shift (up if positive, down if negative)
a: vertical stretch (∣a∣>1), compression (0<∣a∣<1), and reflection (a<0)
b: horizontal compression (∣b∣>1), stretch (0<∣b∣<1), and reflection (b<0)
For example, g(x)=−2(x+3)2+5 transforms the parent f(x)=x2:
Shift left 3 units (since x+3=x−(−3), so h=−3)
Stretch vertically by factor 2
Reflect across the x-axis (negative coefficient)
Shift up 5 units
The vertex moves from (0,0) to (−3,5), and the parabola opens downward.
Four transformations, one parabola
The section's example g(x) = −2(x + 3)² + 5 against its parent x² (dashed). Shifting left 3 and up 5 carries the vertex from (0, 0) to (−3, 5); the factor −2 makes the curve twice as steep and turns it upside down, so the vertex becomes a maximum.
Tracking the vertex is the quickest way to check a combined transformation.
Order of Transformations
When applying multiple transformations, order matters. Different sequences can produce different results.
One systematic approach applies transformations inside-out:
First, apply horizontal transformations in the order they appear when reading from the variable outward: shift by h, then scale by 1/b.
Then, apply vertical transformations in the order they appear when reading outward from the function: scale by a, then shift by k.
For g(x)=3f(2(x−1))+4:
Start with parent f
Shift right 1 (horizontal, inside)
Compress horizontally by factor 2 (horizontal, inside)
Stretch vertically by factor 3 (vertical, outside)
Shift up 4 (vertical, outside)
An alternative approach tracks key points. Identify a reference point on the parent — say, the vertex of a parabola — and apply each transformation to that point's coordinates. The final coordinates locate the transformed point.
Both approaches yield the same result when done correctly. Choose the method that makes the most sense for the given problem.
Writing Equations from Transformed Graphs
Given a transformed graph, the goal is to identify the parent function and the transformations applied, then write the equation.
Step 1: Identify the parent function from the overall shape. Parabola suggests x2; V-shape suggests ∣x∣; S-curve suggests x3; half-curve suggests x.
Step 2: Locate key reference points on the transformed graph. For a parabola, find the vertex. For absolute value, find the vertex. For square root, find the starting point.
Step 3: Compare to the parent. The vertex of y=x2 is at (0,0). If the transformed vertex is at (3,−2), the graph has shifted right 3 and down 2.
Step 4: Determine vertical scaling and reflection. Compare the steepness or amplitude to the parent. If the graph is twice as steep, ∣a∣=2. If it opens in the opposite direction, a is negative.
Step 5: Write the equation. For a parabola with vertex (3,−2) opening downward with steepness 2:
y=−2(x−3)2−2
Step 6: Verify by checking a point. Substitute another visible point into the equation and confirm equality.
Reading the equation off the graph
The section's parabola: its vertex at (3, −2) gives h = 3 and k = −2. One step right of the vertex the graph has dropped 2 units, where the parent x² would have risen 1, so |a| = 2 and, since it opens downward, a = −2. The point (4, −4) checks the result: −2(4 − 3)² − 2 = −4.
Any visible point other than the vertex can serve as the check.
Effect on Domain and Range
Each transformation type affects domain and range in predictable ways.
Vertical translations shift the range. If f has range [a,b], then f(x)+k has range [a+k,b+k]. The domain is unchanged.
Horizontal translations shift the domain. If f has domain [a,b], then f(x−h) has domain [a+h,b+h]. The range is unchanged.
Vertical scaling multiplies the range. If f has range [a,b], then c⋅f(x) has range [ca,cb] when c>0, or [cb,ca] when c<0. The domain is unchanged.
Horizontal scaling divides the domain. If f has domain [a,b], then f(cx) has domain [a/c,b/c] when c>0, or [b/c,a/c] when c<0. The range is unchanged.
Vertical reflection negates the range. Horizontal reflection negates the domain.
Tracking these effects ensures the transformed function is described correctly. The domain and range of g(x)=2x−3+1 follow from the parent f(x)=x with domain [0,∞) and range [0,∞): shift domain to [3,∞), then range becomes [0,∞) scaled to [0,∞), then shifted to [1,∞).
The table below collects each transformation's effect on domain and range in one place — a quick reference when determining the domain and range of a transformed function.
Transformation
Effect on domain
Effect on range
Vertical shift + k
unchanged
[a, b] → [a + k, b + k]
Horizontal shift − h
[a, b] → [a + h, b + h]
unchanged
Vertical scale by a
unchanged
[m, M] → [am, aM] (or [aM, am] if a < 0)
Horizontal scale by b
[a, b] → [a⁄b, b⁄b] (or reversed if b < 0)
unchanged
Vertical reflection
unchanged
[a, b] → [−b, −a]
Horizontal reflection
[a, b] → [−b, −a]
unchanged
Effect on Key Features
Transformations move and modify all key features of a graph systematically.
Intercepts transform with the graph. The y-intercept f(0) moves to a⋅f(−bh)+k. Each x-intercept c moves to (c/b)+h — shifted and scaled horizontally.
Vertices, maxima, and minima move according to both shifts and scalings. The vertex of f(x)=x2 at (0,0) moves to (h,k) in a(x−h)2+k. If a<0, a minimum becomes a maximum.
Asymptotes shift with translations. A horizontal asymptote at y=L becomes y=aL+k. A vertical asymptote at x=c becomes x=(c/b)+h.
Symmetry can be preserved or destroyed. Translating an even function horizontally off-center removes its y-axis symmetry. Reflecting an odd function vertically preserves origin symmetry; translating it does not.
Periodicity scales with horizontal transformations. A function with period p becomes a function with period p/∣b∣ under f(bx). Amplitude scales with vertical transformations.
Tracking these features during transformation confirms that the algebraic and geometric descriptions match.
Summary of Transformations
The four transformation types — shifts, scalings (stretch/compression), and reflections — each appear in both horizontal and vertical form, giving six basic transformations governed by the four parameters a, b, h, k in the general form g(x)=a⋅f(b(x−h))+k. The table below collects each transformation with its form, geometric effect, and the parameter condition that distinguishes its variants — useful as a reference card when sketching transformed graphs or reading equations off of them.
Transformation
Form
Geometric effect
Parameter condition
Vertical shift
g(x) = f(x) + k
shifts the graph vertically by k
up if k > 0, down if k < 0
Horizontal shift
g(x) = f(x − h)
shifts the graph horizontally by h
right if h > 0, left if h < 0
Vertical stretch / compression
g(x) = a · f(x)
scales y-values by factor a
stretch if |a| > 1, compress if 0 < |a| < 1
Horizontal stretch / compression
g(x) = f(bx)
scales x-values by factor 1⁄b
compress if |b| > 1, stretch if 0 < |b| < 1
Vertical reflection
g(x) = −f(x)
flips the graph across the x-axis
occurs when a < 0
Horizontal reflection
g(x) = f(−x)
flips the graph across the y-axis
occurs when b < 0
Function Transformations FAQ
Why does f(x + 2) shift the graph left instead of right?
+
Because the change happens to the input before the function acts. To produce the output previously seen at 2, you now only need to supply 0, so every feature arrives two units earlier and the graph moves left. Changes inside the brackets act on inputs and behave opposite to intuition; changes outside act on outputs and behave as expected.Read more →
What is the difference between reflecting over the x-axis and the y-axis?
+
Negating the whole function flips it vertically across the horizontal axis, turning every output upside down. Negating just the input flips it horizontally across the vertical axis, swapping left for right. Even functions look unchanged under the second, and odd functions look the same under either one applied twice.Read more →
What is the correct order of transformations?
+
Handle horizontal changes inside the brackets first, then vertical changes outside. Within each group, stretches and reflections come before translations. Applying a shift before a stretch scales the shift too, which lands the graph in the wrong place. The order matters because these operations do not commute.Read more →
How do you write an equation from a transformed graph?
+
Identify the parent function from the overall shape first. Then locate the reference point, such as a vertex, to read the horizontal and vertical translations. Finally compare a second point against the parent to find the stretch factor, and check whether the curve is flipped to determine the sign.Read more →
Do transformations change the domain and range?
+
Horizontal changes affect the domain and vertical changes affect the range. A horizontal shift slides the domain, a horizontal stretch scales it, and a vertical shift or stretch does the same to the range. Reflections swap the endpoints of whichever interval they act on rather than moving them.Read more →