从函数图像确定一次函数表达式

从函数图像确定一次函数表达式
几何画板及绘图内容加载中,请稍等……
2025-10-15 15:06
GeoGebra交互式练习,通过图像确定线性函数表达式。学生需根据给定的直线图像,读取斜率(使用斜率三角形)并确定截距,从而写出完整的函数表达式y=kx+d。构造要点:利用Segment绘制斜率三角形、PolyLine绘制参考线、Textfield创建输入框、If和validate命令实现答案验证、Sequence生成随机题目。适用于七至八年级学生掌握一次函数图像与方程的互转,练习使用参数k(斜率)和d(截距)描述直线。

GeoGebra 命令及参数

  1. Flatten(Join[{{1, 2}, Sequence[Shuffle[1…2], k, 1, 49]}]) → CaseList
  2. Join({SteigungenPos, SteigungenNeg}) → Steigungen
  3. Join({Shuffle[Steigungen], Shuffle[Steigungen]}) → SteigungList
  4. If(Case ≟ 1, input1 ≟ Steigung, input2 ≟ FuncOriginal) → correct
  5. Sequence(Random[1, 10], i, 1, 10) → randomNumbers, {10, 6, 1, 3, 4, 6, 7, 5, 1, 9}
  6. Element(randomNumbers, Mod[questionCount, Length[randomNumbers]] + 1) → randomNumber
  7. Textfield(input) → inputBox
  8. Join({Sequence[Segment[Corner[4] + (RasterPixMat * ((k * RasterStepXY), 0)), Corner[4] + (RasterPixMat * ((k * RasterStepXY), RasterMaxY))], k, 0, RasterMaxX / RasterStepXY], Sequence[Segment[Corner[4] + (RasterPixMat * (0, (k * RasterStepXY))), Corner[4] + (RasterPixMat * (RasterMaxX, (k * RasterStepXY)))], k, 0, RasterMaxY / RasterStepXY]}) → RasterStrecken
  9. Join({Sequence[Text[UnicodeToLetter[65 + k], Midpoint[Corner[4] + (RasterPixMat * ((k * RasterStepXY), RasterMaxY)), Corner[4] + (RasterPixMat * (((k + 1) * RasterStepXY), RasterMaxY))], false, true, 0, -1], k, 0, RasterMaxX / RasterStepXY - 1], Sequence[Text[("" * k), Midpoint[Corner[4] + (RasterPixMat * (RasterMaxX, ((k - 1) * RasterStepXY))), Corner[4] + (RasterPixMat * (RasterMaxX, (k * RasterStepXY)))], false, true, 1, 0], k, 1, RasterMaxY / RasterStepXY]}) → RasterBeschriftung
  10. Sequence(Sequence[Corner[4] + (RasterPixMat * ((k * RasterStepXY), (m * RasterStepXY))), k, 0, RasterMaxX / RasterStepXY], m, 0, RasterMaxY / RasterStepXY) → RasterPunkte
  11. Flatten(Sequence[Shuffle[1…4], k, 1, 25]) → NameList
  12. Element({"f", "h", "p", "g"}, NameList(counter)) → Name
  13. Segment(Origin + ((minX / stepX * disX) - edgeAxisX, 0), Origin + ((maxX / stepX * disX) + edgeAxisX, 0)) → segAxisX
  14. Segment(Origin + (0, (minY / stepY * disY) - edgeAxisY), Origin + (0, (maxY / stepY * disY) + edgeAxisY)) → segAxisY
  15. Sequence(Origin + ((minX / stepX * disX), 0) + (k * (disX, 0)), k, 0, maxX / stepX - minX / stepX) → PointsXAxis
  16. Sequence(Origin + (0, (minY / stepY * disY)) + (k * (0, disY)), k, 0, maxY / stepY - minY / stepY) → PointsYAxis
  17. Sequence(Segment[PointsXAxis(k) + (0, (-disSeg)), PointsXAxis(k) + (0, disSeg)], k, 1, Length[PointsXAxis]) → segXAxis
  18. Sequence(Segment[PointsYAxis(k) + ((-disSeg), 0), PointsYAxis(k) + (disSeg, 0)], k, 1, Length[PointsYAxis]) → segYAxis
  19. Sequence(m, m, minX, maxX, stepX) → numbersXAxis
  20. Sequence(Text[((("\textsf{\footnotesize{\(" * If[numbersXAxis(k) ≥ 0, "\phantom{\(-\)}", ""]) * If[Element[numbersXAxis, k] ≟ 0, "", ("" * Element[numbersXAxis, k])]) * "\)}}"), PointsXAxis(k) + (-0.12, (-disSeg)), false, true, 0, -1], k, 1, (maxX - minX) / stepX + 1) → CapX
  21. Sequence(m, m, minY, maxY, stepY) → numbersYAxis
  22. Sequence(Text[((("\textsf{\footnotesize{\(" * If[numbersYAxis(k) ≥ 0, "\phantom{\(-\)}", ""]) * If[Element[numbersYAxis, k] ≟ 0, "", ("" * Element[numbersYAxis, k])]) * "\)}}"), PointsYAxis(k) + ((-disSeg) + 0.05, 0), false, true, -1, 0], k, 1, (maxY - minY) / stepY + 1) → CapY
  23. Element({Polygon[(x(PointsXAxis(1)), y(PointsYAxis(1))) + ((-edgeAxisX) - 0.05, (-edgeAxisY) - 0.05), (x(PointsXAxis(Length[PointsXAxis])), y(PointsYAxis(1))) + (edgeAxisX + 0.05, (-edgeAxisY) - 0.05), (x(PointsXAxis(Length[PointsXAxis])), y(PointsYAxis(Length[PointsYAxis]))) + (edgeAxisX + 0.05, edgeAxisY + 0.05), (x(PointsXAxis(1)), y(PointsYAxis(Length[PointsYAxis]))) + ((-edgeAxisX) - 0.05, edgeAxisY + 0.05)]}, 1) → polyAxis
  24. Numerator(Steigung) → steigungNum
  25. Denominator(Steigung) → steigungDen
  26. If(Steigung ≟ 1, "1", Steigung ≟ -1, "\(-1\)", IsInteger[Steigung], (("\(" * Steigung) * "\)"), (((((If[Steigung < 0, "\(-\)", ""] * "\frac{") * abs(steigungNum)) * "}{") * steigungDen) * "}")) → SteigungText
  27. PolyLine(Origin, PosP, PosQ) → segSteigung
  28. Textfield(input1) → InputBox1
  29. Textfield(input2) → InputBox2
  30. If(Case ≟ 1, Defined[input1], Defined[input2]) → clickableBtnValidate
  31. Intersect(FuncTransform, polyAxis) → IP_{1}, IP_{2}, IP_{3}, IP_{4}
  32. Text((("\textsf{\bold{\textcolor{db6114}{" * Name) * "}}}"), IP_{2}, false, true, 0, 1) → CapFunc