Translating Exponential Graphs: Horizontal and Vertical Shifts
Loading the math board and drawing, please wait…
This GeoGebra lesson demonstrates how horizontal and vertical translations affect the graph of an exponential function, and how to determine the translated function formula from the visual shift. It focuses on the core ideas of exponential-function transformations, including how changing the input (x−h or x+h) produces horizontal shifts, and changing the output (+k) produces vertical shifts, expressed using function notation and algebraic relationships. Construction and interactivity are driven by GeoGebra commands and objects such as RandomUniform/Shuffle/Take/Element for generating parameters, Translate (with Vector) to apply and visualize shifts, Asymptote to display the exponential asymptote, Intersect/Segment/Polygon for highlighting relevant geometric features, and Textfield/SelectedIndex/Corner with onboardingTextOffset for guided user input. If-logic plus validation controls (e.g., btnValidate, showhint, showanswer) support answer checking. Suitable for grades 9–12 and for graph-to-equation transformation practice.
GeoGebra Commands & Parameters
RandomUniform(0, 0.99, 200) → allRandomSeeds, {0.3513288554133347, 0.7948306045490805, 0.630092788766771, 0.09439542691709646, 0.7852024620150003, 0.6665376341339869, 0.5699671841562188, 0.24012199373492638, 0.8637805245124694, 0.08785833468869286, 0.44153601639483575, 0.16421085649828637, 0.4308267675680974, 0.5411244254626862, 0.2880187442285113, 0.3316458516994189, 0.04573402410943486, 0.1748004821183743, 0.41277587497294005, 0.6770733013427496, 0.1260328797579236, 0.8722298317610926, 0.8152164882118385, 0.5512860631616803, 0.8255619293406712, 0.8085752184173688, 0.025846084076791377, 0.18704123234882364, 0.8465831495641459, 0.14117869808029113, 0.9732256607136217, 0.5181025683199033, 0.2261469752439717, 0.12582050522863983, 0.07247790291947201, 0.7812487764802283, 0.07622122021518243, 0.033301068216008846, 0.7140290667453745, 0.5365255278801965, 0.8934939576435216, 0.6773999707892325, 0.3125153813230163, 0.7962439209825842, 0.6883449332215922, 0.2365848131161663, 0.5192110313604574, 0.5281400501340272, 0.6532510076193698, 0.5178487856685339, 0.9669488778459061, 0.8827101085828115, 0.7888507243892445, 0.18174849538978735, 0.5443091658553205, 0.6890222824074053, 0.9210390159573988, 0.0630952115773782, 0.1758407330256809, 0.9772818689520718, 0.02479759470131719, 0.4418205881887233, 0.1772572402514549, 0.8600873222285432, 0.7899873828257541, 0.23329379584198423, 0.5889163845457557, 0.6376654451960931, 0.6910392314671455, 0.7168107131050525, 0.9074426719934164, 0.7954103513863395, 0.29637459615903033, 0.3151062173290358, 0.8840941853192839, 0.5947755991070007, 0.034472814567535676, 0.4865591850053309, 0.7994022329992151, 0.7909816178761417, 0.9717722934410394, 0.265265837552714, 0.7267275137182303, 0.6530990154870339, 0.10305266275830192, 0.7423502997862352, 0.7926790498100168, 0.40385645499896744, 0.9475907129053986, 0.5447615865701813, 0.4098328278724489, 0.20799601297957987, 0.35421746876780824, 0.5053759111353929, 0.726864624368723, 0.16916092573026423, 0.9354247863068216, 0.7404773332852942, 0.42307647877908006, 0.966150620290243, 0.854879403543547, 0.8976347101537169, 0.8583493116020401, 0.579914407017659, 0.03409829983748836, 0.4586226869382642, 0.5057945168569734, 0.8128807178573046, 0.5926234474515693, 0.07835339249537238, 0.1328045018907437, 0.7621298275170507, 0.1618056039996985, 0.2817911212384236, 0.9568182845582216, 0.6875186800341042, 0.4152656787243638, 0.2265157243437538, 0.5449200257395702, 0.5151525710074281, 0.5392484981631999, 0.8289813015331442, 0.31137950597020375, 0.04557373839783843, 0.5634184860290352, 0.477585138673989, 0.43442037540695716, 0.7246988696348894, 0.5271670551391427, 0.1854176023590368, 0.5728683519951794, 0.2938867594099253, 0.828211767374742, 0.46000721979586334, 0.40488295838699917, 0.373554957388864, 0.6591629777648523, 0.11650586541820049, 0.7447178896217643, 0.19248870867495307, 0.7238178830772269, 0.7145775674822615, 0.2593819258713156, 0.5023973580204484, 0.868213581608559, 0.04776003865013425, 0.24518807670411394, 0.13437335487794114, 0.28192931435827906, 0.3872614355573916, 0.24448099023721742, 0.9706958359684774, 0.10277509167725514, 0.6100360488611456, 0.3753232787209039, 0.7818954782708568, 0.3428372304863721, 0.7535505403609188, 0.341598767313794, 0.8651595394008118, 0.785873575895136, 0.18690840843644918, 0.17785622551946598, 0.5960052769335367, 0.4752593923350076, 0.6099436773727398, 0.5022697845575405, 0.7806875172609469, 0.03808201883392005, 0.8185258569642648, 0.1023321411067003, 0.012030139790984561, 0.8245660009491218, 0.5056362537476095, 0.021325081821110453, 0.49628427957284676, 0.3227819248471848, 0.4637817079468291, 0.4092263996805353, 0.46321442797967016, 0.5765516165770184, 0.365005470933323, 0.4295153614449439, 0.6659017968002766, 0.14960788770533714, 0.3501350760343593, 0.3033291680487885, 0.5607285294337738, 0.821402088681551, 0.04897652328428288, 0.6946003414405885, 0.5616682018294237, 0.9594735822680267, 0.9479186475808071, 0.07417039500527417, 0.8963579389251224, 0.050004201951754985, 0.7708560526471414, 0.49742780694892413, 0.9844648190293982}Take(allRandomSeeds, randIndex, randIndex + numRandoms - 1) → currentRandomSeedsShuffle(Sequence[t, t, -5, 5, 1] \ {0}) → allH, {-3, 5, 3, -1, -2, 1, 4, 2, -4, -5}Element(allH, Mod[countQuestion, Length[allH]] + 1) → numHShuffle(Sequence[t, t, -3, 3, 1] \ {0}) → allK, {2, 1, 3, -3, -1, -2}Element(allK, Mod[countQuestion, Length[allK]] + 1) → numKShuffle({-3, -2, 2, 3}) → allA, {3, -3, 2, -2}Shuffle(Sequence[t, t, 2, 8, 1]) → allB, {4, 6, 2, 5, 3, 8, 7}Element(allA, Mod[countQuestion, Length[allA]] + 1) → numAElement(allB, Mod[countQuestion, Length[allB]] + 1) → numBTranslate(given, Vector[(numH, numK)]) → finalTextfield(inputB) → InputBoxBSelectedIndex(ddMenu) → isCorner(5) → layoutAppSizeonboardingTextOffset(Corner[onboardingText, 1], Corner[onboardingText, 3], onboardingCase, Corner[1], Corner[3], Corner[5]) → OnboardingTextOffsetTextfield(inputA) → InputBoxATextfield(inputC) → InputBoxCPolygon(P1, Mirror[P1, yAxis], Mirror[P1, (0, 0)], Mirror[P1, xAxis]) → peep, p1, f, g, hSegment((-10.85, 0), (10.85, 0)) → fakeXSegment((0, -10.85), (0, 10.85)) → fakeYTranslate(horTrans, Vector[(0, ((aniSli - 1) * numK))]) → verTransIf(aniSli < 1, Translate[GI, Vector[((aniSli * numH), 0)]], Translate[GI, Vector[(numH, 0)]]) → GIHTranslate(GIH, Vector[(0, ((aniSli - 1) * numK))]) → GIVVector(GI, GIH) → HVectVector(GIH, GIV) → VVectAsymptote(verTrans) → aoVector(GI, GIV) → transVecSegment(GI, GIH) → xCompSegment(GIH, GIV) → yCompIntersect(final, If[numA < 0, y = -10, y = 11], (-2.2075187496394193, 11)) → PLGIntersect(studF, If[3 ≤ is ≤ 5 ∧ numA < 0 ∨ is ≟ 2 ∧ inputA < 0, y = -10, y = 11], (11, 11)) → PLS
AI Drawing Prompt Reference
Draw an exponential function graph and apply horizontal and vertical translations to generate a new exponential function graph. First, draw the original exponential function, then apply a horizontal shift by H units and a vertical shift by K units to get the transformed graph. Pay attention to the changes in the graph before and after the transformation, and try to determine the equation of the transformed function based on the graph.
The prompt above was compiled from the original drawing commands and is for reference only.