双数轴模型——百分比变化

双数轴模型——百分比变化
几何画板及绘图内容加载中,请稍等……
2017-11-22 06:26
该范例使用双数轴模型来演示百分比变化的情境。核心数学概念包括百分比、比例和数值调整。通过使用GeoGebra命令如If, Point, Segment, Textfield等,可以动态展示数值变化。适合初中及以上学生学习比例和百分比计算。

GeoGebra 命令及参数

  1. If(q1changeValue ≥ 0 ∧ q1changeValue ≤ 0.1, 0.1, If[q1changeValue < 25, round((100 * q1changeValue)) / 100, If[q1changeValue < 75, round((10 * q1changeValue)) / 10, If[q1changeValue > 100, 100, round(q1changeValue)]]]) → q1changeValueRnd
  2. If(q1 ≥ 0 ∧ q1 ≤ 0.1, 0.1, If[q1 < 25, round((100 * q1)) / 100, If[q1 < 75, round((10 * q1)) / 10, If[q1 > 100, 100, round(q1)]]]) → q1rnd
  3. If(q2 < 500, 100, If[q2 < 1000, 10, 1]) → roundingFactorDNL2values
  4. If(q2 ≥ 0 ∧ q2 ≤ 0.1, 0.1, round((roundingFactorDNL2values * q2)) / roundingFactorDNL2values) → q2rnd
  5. Point(Segment[(0, 0.85), (4.3, 0.85)]) → SlidePt
  6. If(q1 < 500, 100, If[q1 < 1000, 10, 1]) → roundingFactorDNL1values
  7. Segment(A, DNL2ArrowPt) → lineDNL1
  8. Segment(B, DNL1ArrowPt) → lineDNL2
  9. Textfield(q1labelForLengthAlwaysShow) → q1blabelInput
  10. Textfield(q2labelForLengthAlwaysShow) → q2blabelInput
  11. Textfield(q1) → q1avalueInput
  12. Text("0%", (x(B) - 0.08, y(B) + yOffSet)) → zeroDNL1
  13. Text("0", (x(A) - 0.035, y(A) - (1.7 * yOffSet))) → zeroDNL2
  14. Segment((3, h), (3, h + 1)) → startSegPercentValueIncr
  15. Segment((2.5, h + 1), (2.5, h + 1.2)) → startSegPercentIncr
  16. Sequence(Segment[(k, -0.02), (k, h + 0.02)], k, 0.3, 0.6, 0.1) → startSelectDNLGapDashed
  17. Segment((1.5, -1.6), (1.5, h + 1.6)) → startSegPercentDecr
  18. Vector(((2 * length) - 0.25, (0.3 * h)), ((2 * length) - 0.9, (0.3 * h))) → startVectorDecrButton
  19. Vector(((2 * length) + 0.25, (0.3 * h)), ((2 * length) + 0.9, (0.3 * h))) → startVectorIncrButton
  20. If(q2changeValue ≥ 0 ∧ q2changeValue ≤ 0.1, 0.1, If[q2changeValue < 25, round((100 * q2changeValue)) / 100, If[q2changeValue < 75, round((10 * q2changeValue)) / 10, round(q2changeValue)]]) → q2changeValueRnd
  21. Segment(SlidePt + (0, h + 0.9), SlidePt - (0, h + 0.9)) → slideSeg
  22. Textfield(locationXq1InputTextToParse) → locationXq1Input
  23. Textfield(locationXq2InputTextToParse) → locationXq2Input
  24. Textfield(q2inputTextToParse) → q2avalueInput
  25. Textfield(q2inputTextToParse) → q2valueInputStart
  26. Textfield(q2changeValueTextToParse) → startDecrAmtInput
  27. Textfield(q2decrIntervalTextToParse) → startDecrAmtIntervalInput
  28. Textfield(q1changeValueTextToParse) → startDecrPercentInput
  29. Textfield(q1decrIntervalTextToParse) → startDecrPercentIntervalInput
  30. Textfield(q2changeValueTextToParse) → startIncrAmtInput
  31. Textfield(q2incrIntervalTextToParse) → startIncrAmtIntervalInput
  32. Textfield(q1changeValueTextToParse) → startIncrPercentInput
  33. Textfield(q1incrIntervalTextToParse) → startIncrPercentIntervalInput
  34. Sequence((k, h), k, 0, 4.3, ((2 * length)) / hatchMinor) → hashMinorDNL1
  35. Sequence((k, 0), k, 0, 4.3, ((2 * length)) / hatchMinor) → hashMinorDNL2
  36. Vector(((If[decrCk, 1.5, 2.5] * length), If[amtCk, -1.9, h + 1.88]), ((If[decrCk, 1, 3] * length), If[amtCk, -1.9, h + 1.88])) → startDecrIncrVector1
  37. Vector(((If[decrCk, 1, 1.5] * If[amtCk, (1.5 * length), (1.8 * length)]), If[amtCk, -1.9, h + 1.88]), ((2 * length), If[amtCk, -1.9, h + 1.88])) → startDecrIncrVector2
  38. Vector(((2 * length), h + 1.085), ((q1changeValue / ((50 * zoom)) * length), h + 1.085)) → dnlIntervalVector2
  39. Segment(((2 * length), If[dnlCk ∧ showAmtIntervalCk ∧ (¬showPercentIntervalCk), -1, If[amtCk ∧ (¬dnlCk), -2, If[showAmtCk ∧ (¬showPercentIntervalCk), -0.93, If[dnlCk, h + 1.2, h + 2]]]]), ((2 * length), If[dnlCk ∧ showAmtCk ∧ showPercentCk, -1.3, If[showAmtIntervalCk ∧ showPercentIntervalCk, -1, If[(¬dnlCk) ∧ showPercentIntervalCk, h + 1.2, If[(¬dnlCk) ∧ (¬showPercentCk) ∧ (¬showPercentIntervalCk) ∧ (¬amtCk) ∧ (¬startCk2), 0, If[(¬dnlCk) ∧ amtCk, h, (0.5 * h)]]]]])) → segAt100percent
  40. Sequence(((length * k), h), k, 0, 4, 1) → hashMajorDNL1
  41. Sequence(((length * k), 0), k, 0, 4, 1) → hashMajorDNL2
  42. Sequence(Text[((0.5 * p) * q2), ((length * p) + xOffSet, y(A) - (1.7 * yOffSet))], p, If[addHashMarksCk ∧ (hatchMinor ≟ 7 ∨ hatchMinor ≟ 9), 6 / hatchMinor, If[addHashMarksCk ∧ hatchMinor ≤ 5, 2 / hatchMinor, 4 / If[addHashMarksCk, hatchMinor, 4]]], 4, If[addHashMarksCk ∧ (hatchMinor ≟ 7 ∨ hatchMinor ≟ 9), 6 / hatchMinor, If[addHashMarksCk ∧ hatchMinor ≤ 5, 2 / hatchMinor, 4 / If[addHashMarksCk, hatchMinor, 4]]]) → hashMarkValuesTextDNL2
  43. Sequence(Text[(50 * q) + "%", ((length * q) + topxOffSet, y(B) + yOffSet)], q, If[addHashMarksCk ∧ (hatchMinor ≟ 7 ∨ hatchMinor ≟ 9), 6 / hatchMinor, If[addHashMarksCk ∧ hatchMinor ≤ 5, 2 / hatchMinor, 4 / If[addHashMarksCk, hatchMinor, 4]]], If[addHashMarksCk ∧ (hatchMinor ≟ 3 ∨ hatchMinor ≟ 6 ∨ hatchMinor ≟ 9), 3.5, 4], If[addHashMarksCk ∧ (hatchMinor ≟ 7 ∨ hatchMinor ≟ 9), 6 / hatchMinor, If[addHashMarksCk ∧ hatchMinor ≤ 5, 2 / hatchMinor, 4 / If[addHashMarksCk, hatchMinor, 4]]]) → hashMarkValuesTextDNL1
  44. If(dnlCk, Segment[((q1changeValue / ((50 * zoom)) * length), If[showAmtCk, -1.3, If[showAmtIntervalCk ∧ (¬showPercentIntervalCk) ∧ (¬showPercentCk), h + 0.2, h + 1.2]]), ((q1changeValue / ((50 * zoom)) * length), If[showAmtCk ∧ (showPercentCk ∨ showPercentIntervalCk), 3, If[showAmtCk, h + 0.2, If[showAmtIntervalCk, -1, -0.15]]])], Segment[((If[decrCk, 1, 3] * length), If[(¬dnlCk) ∧ showPercentIntervalCk, h + 1.2, If[(¬dnlCk) ∧ showPercentCk, h + 0.6, (0.5 * h)]]), ((If[decrCk, 1, 3] * length), If[amtCk, -2, h + 2])]) → segIncrDecr
  45. Vector(((2 * length), If[showAmtIntervalCk, -0.85, h + 1.085]), (If[¬dnlCk, If[decrCk, length, (3 * length)], (q1changeValue / ((50 * zoom)) * length)], If[showAmtIntervalCk, -0.85, h + 1.085])) → dnlIntervalVector

AI 绘图提示语参考

画两条平行的数轴,表示百分比变化。第一条数轴标注0%到100%,第二条数轴标注0到1000。在第一条数轴上,根据输入值动态显示百分比变化,并在第二条数轴上显示相应的数值变化。使用虚线和小刻度标记数值间隔,并在数轴旁标注数值。添加按钮和滑块,用于调整数值和百分比变化,并实时更新两条数轴的显示。
以上提示语为根据原始绘图命令整理而来,仅供参考。