用图形模型把分数转换为百分数

用图形模型把分数转换为百分数
几何画板及绘图内容加载中,请稍等……
2024-02-20 18:38
该范例演示如何从视觉分割模型中,将一个分数等价地表示成对应的百分数。核心数学概念包括百分数的含义(每百为基准)、分数与百分数的等价关系,以及把分数转换为“分母为100的分数”。作图与交互要点是:通过随机选择案例数量与分子分母(使用 Element、Sequence、Take、Shuffle、Textfield 等对输入与题目参数进行生成与呈现),再用几何分割的方式构造表示基准的圆形扇区/分块(涉及 Circle、Sector、Polygon、Angle、Segment、Intersect、Div、Mod 等用于确定分割与对应区域)。模型中会用 Div/Mod 决定列与编号并显示文本结果(Textfield、Element),同时提供校验流程与答案显示(If、showanswer、showsolution、btnValidate、tries、countCorrect、validate)。适合中学(GR.6-8)用于理解百分数与分数的联系,也可作为数字感与建模类练习的课堂/自学材料。

GeoGebra 命令及参数

  1. Element(allCaseNum, Mod[countQuestion, Length[allCaseNum]] + 1) → caseNum
  2. Shuffle(Sequence[Point[{(r * cos(((k * 2) * pi / 10))), (r * sin(((k * 2) * pi / 10)))}], k, 0, 9]) → allStartVertCircle, {(-6.472135954999579, 4.702282018339786), (2.472135954999578, -7.608452130361229), (-6.47213595499958, -4.702282018339784), (6.472135954999579, -4.702282018339787), (-2.4721359549995805, -7.608452130361228), (2.4721359549995796, 7.608452130361228), (-2.4721359549995787, 7.608452130361229), (6.47213595499958, 4.702282018339785), (8, 0), (-8, 0)}
  3. Element(allStartVertCircle, Mod[countQuestion, Length[allStartVertCircle]] + 1) → V1
  4. Element(allEndVertCircle, Mod[countQuestion, Length[allEndVertCircle]] + 1) → V2
  5. Shuffle({1, 2, 4, 5, 10}) → allDivOr, {10, 1, 2, 4, 5}
  6. Element(allDivOr, Mod[countQuestion, Length[allDivOr]] + 1) → divOr
  7. If(divOr ≟ 1, Shuffle[{1, 2, 4, 5, 10}], divOr ≟ 2, Shuffle[{1, 2, 5, 10}], divOr ≟ 4, Shuffle[{1, 5}], divOr ≟ 5, Shuffle[{1, 2, 5, 10}], divOr ≟ 10, Shuffle[{1, 5, 10}]) → allDivVert
  8. Element(allDivVert, Mod[countQuestion, Length[allDivVert]] + 1) → divVert
  9. Shuffle(Sequence[k, k, 1, (divVert * divOr), 1]) → allNCol, {45, 2, 99, 66, 58, 90, 48, 50, 41, 83, 31, 80, 25, 3, 30, 42, 87, 12, 40, 51, 64, 38, 54, 20, 100, 46, 63, 85, 73, 91, 44, 39, 17, 16, 67, 22, 88, 52, 98, 95, 37, 92, 78, 89, 10, 28, 81, 21, 34, 60, 70, 47, 71, 93, 13, 49, 79, 74, 68, 4, 56, 32, 59, 27, 11, 77, 82, 24, 55, 57, 5, 15, 6, 96, 94, 43, 86, 14, 26, 75, 35, 36, 97, 76, 72, 69, 29, 19, 1, 33, 7, 61, 8, 84, 9, 18, 65, 53, 23, 62}
  10. Element(allNCol, Mod[countQuestion, Length[allNCol]] + 1) → numCol
  11. Sequence(Random[0, 99] / 100, A, 1, 200) → allRandomSeeds, {0.28, 0.09, 0.53, 0.73, 0.98, 0.33, 0.54, 0.3, 0.72, 0.35, 0.46, 0.55, 0.25, 0.98, 0.03, 0.88, 0.52, 0.47, 0.56, 0.73, 0.52, 0.11, 0.98, 0.5, 0.06, 0.58, 0.26, 0.48, 0.87, 0.53, 0.1, 0.43, 0.32, 0.88, 0.68, 0.28, 0.06, 0.77, 0.79, 0.23, 0.15, 0.13, 0.32, 0.38, 0.07, 0.16, 0.16, 0.1, 0.11, 0.45, 0.49, 0.82, 0.22, 0.52, 0.58, 0.37, 0.18, 0.59, 0.41, 0.26, 0.22, 0.4, 0.76, 0.48, 0.22, 0.77, 0.53, 0.2, 0.75, 0.31, 0.75, 0.26, 0.14, 0.49, 0.69, 0.08, 0.51, 0.37, 0.86, 0.91, 0.91, 0.65, 0.81, 0.75, 0.79, 0.44, 0.48, 0.46, 0.32, 0.92, 0.37, 0.21, 0.13, 0.87, 0.34, 0.86, 0.12, 0.38, 0.98, 0.27, 0.06, 0.86, 0.04, 0.29, 0.72, 0.67, 0.52, 0.29, 0.34, 0.4, 0.12, 0.19, 0.96, 0.48, 0.57, 0.17, 0.56, 0.31, 0.88, 0.59, 0.92, 0.68, 0, 0.81, 0.89, 0.95, 0.58, 0.1, 0.69, 0.6, 0.93, 0.64, 0.34, 0.18, 0.79, 0.93, 0.11, 0.23, 0.09, 0.97, 0.6, 0.25, 0.79, 0.11, 0.85, 0.7, 0.72, 0.42, 0.64, 0.33, 0.45, 0.68, 0.34, 0.56, 0.44, 0.58, 0.53, 0.63, 0.73, 0.39, 0.4, 0.91, 0.8, 0.27, 0.47, 0.56, 0.79, 0.57, 0.37, 0.45, 0, 0.76, 0.92, 0.85, 0.34, 0.51, 0.88, 0.95, 0.45, 0.56, 0.36, 0.27, 0.36, 0.3, 0.94, 0.52, 0.35, 0.2, 0.74, 0.83, 0.7, 0.34, 0.43, 0.7, 0.77, 0.16, 0.7, 0.11, 0.26, 0.42}
  12. Take(allRandomSeeds, randIndex, randIndex + numRandoms - 1) → currentRandomSeeds
  13. Textfield(inputB) → InputBoxB
  14. Angle(V1, O, V2) → givenAng
  15. Textfield(inputA) → InputBoxA
  16. Polygon(Zip[PixelsToPoint[Corner[1], Corner[3], Corner[5], A], A, {(pixelsLeft, pixelsTop), (pixelsLeft, y(Corner[5]) - pixelsBottom), Corner[5] - (pixelsRight, pixelsBottom), (x(Corner[5]) - pixelsRight, pixelsTop)}]) → borderBox
  17. Corner(5) → layoutAppSize
  18. onboardingTextOffset(Corner[onboardingText, 1], Corner[onboardingText, 3], onboardingCase, Corner[1], Corner[3], Corner[5]) → OnboardingTextOffset
  19. Textfield(inputC) → InputBoxC
  20. Polygon(PC, Mirror[PC, yAxis], Mirror[PC, (0, 0)], Mirror[PC, xAxis]) → peep, peepL4, peepL1, peepL2, peepL3
  21. Div(numCol, divOr) → quoz
  22. Mod(numCol, divOr) → res
  23. Segment(A, B) → segmAB
  24. Segment(B, C) → segmBC
  25. Segment(C, D) → segmCD
  26. Segment(D, A) → segmAD
  27. Sequence(Segment[Point[segmBC, k / divOr], Point[segmAD, 1 - k / divOr]], k, 1, divOr, 1) → segmVert
  28. Sequence(Segment[Point[segmAB, k / divVert], Point[segmCD, 1 - k / divVert]], k, 1, divVert, 1) → segmOr
  29. Intersect(vertEnd, segmBC) → G
  30. Intersect(orBottom, segmCD) → H
  31. Intersect(orTop, vertStart) → F
  32. Polygon({F, M, N, H, C, B}) → coloredPoli
  33. Circle(O, r) → c
  34. Sequence(Point[{(r * cos(((k * 2) * pi / 10))), (r * sin(((k * 2) * pi / 10)))}], k, 0, 9) → divCircleMain
  35. Zip(Segment[O, A], A, divCircleMain) → segmCircle
  36. Sector(c, V1, V2) → coloredSect

AI 绘图提示语参考

绘制一个圆形,将其等分为若干扇形区域,其中一部分扇形用颜色填充以表示分数对应的百分比。圆外放置一个矩形网格,网格被水平和垂直分割成多个小格,部分小格用颜色填充,与扇形填充比例一致。图形下方显示一个输入框,用于输入答案,并配有验证按钮。整体布局包含标题和说明文字,强调分数与百分数的转换关系。
以上提示语为根据原始绘图命令整理而来,仅供参考。