变换顺序演示
几何画板及绘图内容加载中,请稍等……
①本范例演示了在 GeoGebra 中通过不同顺序应用变换(如移动、缩放)对图形的影响;②涉及核心数学概念包括函数变换、解析几何、优化问题及二次函数;③作图要点提炼自构造摘要,使用了 If、FractionText、LaTeX、Sequence、Element、UnicodeToLetter、Corner、IndexOf、Defined、TableText、Polygon、Shuffle 等命令和对象;④适合高中及以上数学学习者,用于理解变换顺序对图形性质的影响及函数优化。
GeoGebra 命令及参数
If(Random[0, 1] ≟ 1, (Random[1, 3] * 2) + 1, 1 / ((Random[1, 3] * 2) + 1)) → bValFractionText(abs(bVal)) → bValDispFractionText(abs(aVal)) → aValDispLaTeX(case4) → case4DispLaTeX(case3) → case3DispLaTeX(case2) → case2DispLaTeX(case1) → case1DispSequence((24, i), i, 22, 0, -2.75) → boxAnchorRightElement(B23:B28, caseIndx) → vStretchaValSequence((0, i), i, 22, 0, -2.75) → boxAnchorLeftSequence({Element[boxAnchorLeft, i], Element[boxAnchorRight, i], Element[boxAnchorRight, i + 1], Element[boxAnchorLeft, i + 1]}, i, 1, 4) → boxAnchorsSequence(Polygon[Element[boxAnchors, i]], i, 1, 4) → boxesUnicodeToLetter(10007) → xmarkUnicodeToLetter(10003) → cmarkCorner(B10, 1) → C10Corner(B11, 1) → C11LaTeX((("\text{Vertical compression by a factor of \(" * FractionText[1 / abs(aVal)]) * "\).}")) → B12Corner(B12, 1) → C12LaTeX((("\text{Horizontal translation " * abs(cVal)) * " units right.}")) → B15Corner(B15, 1) → C15LaTeX((("\text{Horizontal translation " * abs(cVal)) * " units left.}")) → B16Corner(B16, 1) → C16Corner(B9, 1) → C9Element(boxes, 1) → box1Element(boxes, 2) → box2Element(boxes, 3) → box3Element(boxes, 4) → box4LaTeX((((("\text{Vertical translation " * abs(dVal)) * " unit") * If[abs(dVal) ≟ 1, "", "s"]) * " up.}")) → B18LaTeX((((("\text{Vertical translation " * abs(dVal)) * " unit") * If[abs(dVal) ≟ 1, "", "s"]) * " down.}")) → B17Corner(B17, 1) → C17Corner(B18, 1) → C18Element(caseFormulas, caseIndx) → fxLblSequence((((((("SetCoords(B" * Element[stepsChosen, i]) * ",x(Element(boxAnchorLeft,") * i) * ")),y(Element(boxAnchorLeft,") * i) * ")-.75))"), i, 1, Min[4, Length[stepsChosen]]) → cmdMoveStepsIndexOf(11, Remove[stepsChosen, {9, 10, 12, 13, 14, 15, 16}]) → F11IndexOf(9, Remove[stepsChosen, {10, 11, 12, 13, 14, 15, 16}]) → F9IndexOf(10, Remove[stepsChosen, {9, 11, 12, 15, 16}]) → F10IndexOf(12, Remove[stepsChosen, {9, 10, 11, 13, 14, 15, 16}]) → F12IndexOf(15, Reverse[Remove[stepsChosen, {9, 11, 12, 16, 17, 18}]]) → F15IndexOf(16, Reverse[Remove[stepsChosen, {9, 11, 12, 15, 17, 18}]]) → F16IndexOf(17, Reverse[Remove[stepsChosen, {13, 14, 15, 16, 18}]]) → F17IndexOf(18, Reverse[Remove[stepsChosen, {13, 14, 15, 16, 17}]]) → F18If(Defined[F9], F9 ≟ 1, true) → G9If(Defined[F10], F10 ≟ 1, true) → G10If(Defined[F11], F11 ≟ 1, true) → G11If(Defined[F12], F12 ≟ 1, true) → G12If(Defined[F15], F15 ≟ 1, true) → G15If(Defined[F16], F16 ≟ 1, true) → G16If(Defined[F17], F17 ≟ 1, true) → G17If(Defined[F18], F18 ≟ 1, true) → G18Defined(IndexOf[9, stepsChosen]) → I9Defined(IndexOf[10, stepsChosen]) → I10Defined(IndexOf[11, stepsChosen]) → I11Defined(IndexOf[12, stepsChosen]) → I12Defined(IndexOf[13, stepsChosen]) → I15Defined(IndexOf[14, stepsChosen]) → I16Defined(IndexOf[15, stepsChosen]) → I17Defined(IndexOf[16, stepsChosen]) → I18Sequence("\phantom{\dfrac{1}{1}000000000000000000000000000000000000000}", i, 1, 5) → spacersSequence((-3, i), i, 9.5, 2.5, -2) → optionAnchorsTableText({{"Step 1", "Step 2", "Step 3", "Step 4"}, spacers, markLst}, "vl") → stepLblsPolygon((-4, 0), (-4, 10), (44, 10), (44, 0)) → fbCover, fbCover_1, fbCover_2, fbCover_3, fbCover_4LaTeX(If[correctOrder, "Your solution is correct.", (((("The steps marked with " * moveUp) * " or ") * moveDown) * " are not in the correct order.")]) → fbCorrectLaTeX(If[correctOrder, "", "Click `Show a Solution' to see one correct solution."]) → fbShowSolutionShuffle(stepsCorrect) → stepsCorrectShuffledSequence((((("SetValue(D" * Element[stepsCorrectShuffled, i]) * ",") * Element[optionAnchors, i]) * ")"), i, 1, Length[stepsCorrect]) → cmdSetHomePtsLaTeX((((("\text{" * fbCorrect) * "\\") * fbShowSolution) * "}")) → fbStatementIf(G10, correct, moveUp) → J10If(G9, correct, moveUp) → J9If(G11, correct, moveUp) → J11If(G12, correct, moveUp) → J12If(G15, correct, moveDown) → J15If(G16, correct, moveDown) → J16If(G17, correct, moveDown) → J17If(G18, correct, moveDown) → J18LaTeX((("\text{Horizontal compression by a factor of " * FractionText[abs(bVal)]) * ".}")) → B14LaTeX((("\text{Horizontal stretch by a factor of \(" * FractionText[1 / abs(bVal)]) * "\).}")) → B13Corner(B13, 1) → C13Corner(B14, 1) → C14IndexOf(14, Remove[stepsChosen, {9, 10, 11, 12, 13, 17, 18}]) → F14IndexOf(13, Remove[stepsChosen, {9, 10, 11, 12, 14, 17, 18}]) → F13If(Defined[F13], F13 ≟ 1, true) → G13If(Defined[F14], F14 ≟ 1, true) → G14Defined(IndexOf[17, stepsChosen]) → I13Defined(IndexOf[18, stepsChosen]) → I14If(G13, correct, moveUp) → J13If(G14, correct, moveUp) → J14LaTeX(If[isDone, ""]) → fbNotDoneLaTeX((("\text{\textbf{Question: }A set of translations that would map \(f(x)=\vert x \vert\) onto \(h(x)=" * fxLbl) * "\) \\is listed below. Place the transformations in a correct order.}")) → MainInstrucLaTeX("\text{\textbf{Instructions: }Click on a transformation to select it. It will be placed in the list of steps in \\the order in which you select it. Click on a transformation already selected to return it to the \\list at the bottom.}") → SpecInstruc