用二分之一作为基准比较分数

用二分之一作为基准比较分数
几何画板及绘图内容加载中,请稍等……
2023-06-26 19:02
① 本范例通过圆形与半圆模型直观演示如何以二分之一(½)为基准来比较两个分数的大小,帮助学生建立分数大小的直观感知。② 核心数学概念是基准数(0、½、1)的使用,以及分数比较与排序,涉及分数意义、等值分数和数感培养。③ 作图要点:利用GeoGebra命令如RandomUniform生成随机分数,Sequence和If控制分数选项,Circle与CircleSector构建圆形和半圆模型,Translate和Zip调整位置,Text显示分数标签,Slider(如animateInequalityControl)控制动画过程,dragPointsFrac1/2实现拖拽交互,通过KeepIf和IndexOf处理动态数据。④ 适合小学4-5年级学生,用于课堂探索或家庭练习,也可作为教师演示工具,帮助学生理解分数比较策略,并配有开放性问题促进深度思考。

GeoGebra 命令及参数

  1. RandomUniform(0, 0.99, 200) → allRandomSeeds, {0.1488988986124473, 0.23412759938086947, 0.0171711996435389, 0.40870012227180524, 0.3310182530686135, 0.032659693657403524, 0.6595446679566607, 0.6586634599553712, 0.60557251414151, 0.25969809480574657, 0.5658762038087762, 0.9603097139239879, 0.022425739867138174, 0.2026864443060217, 0.09631657977948635, 0.6257268322122754, 0.8440319291454371, 0.5173709709176897, 0.669374033637702, 0.4083741391627455, 0.9849411602593822, 0.7022839645523604, 0.5060041826134926, 0.6437801077273141, 0.04661579065862672, 0.01460972249498697, 0.19779254251862305, 0.04617468810190421, 0.12864420596124188, 0.8451973584606085, 0.18185454715922122, 0.9778204375581194, 0.6813746449317322, 0.1987176741647721, 0.20448304609825724, 0.4102565859985069, 0.07736550337269653, 0.4891308927905225, 0.02841479634217346, 0.41006003102649147, 0.5698583419999401, 0.13073983065548392, 0.4848666803734707, 0.8960526152873576, 0.5457279665525939, 0.7211473705261503, 0.631209352890093, 0.010147936445472154, 0.9380501470821964, 0.9044204790192404, 0.04830016630922307, 0.9702323585169726, 0.8595494962323736, 0.6106818670951991, 0.6480891258814335, 0.8006133012990023, 0.04275168693983401, 0.44220856234554423, 0.3521407775679549, 0.013643887164386243, 0.1656614425081156, 0.985911621986174, 0.45518208801874804, 0.39514743289264237, 0.6232236301228712, 0.6378027301585873, 0.5046899723242427, 0.006215359336733127, 0.9346977688635758, 0.696724619765923, 0.37787494985531084, 0.8648417776517789, 0.2753868709509406, 0.5522286824816305, 0.6211955226303277, 0.6626836537561186, 0.8179093867961217, 0.7750286015721883, 0.9047557146520757, 0.7349989999403738, 0.42338882849019965, 0.10794082340184363, 0.06459186046896452, 0.6355173038816794, 0.7365585175614053, 0.4706432844942688, 0.6499467094521616, 0.6926343892177997, 0.5108394754756139, 0.3629402731613279, 0.32015826005302483, 0.8289006456591794, 0.8999476461976595, 0.0785173602666734, 0.946757676895947, 0.3622847690307481, 0.7115219075939824, 0.5544015865310703, 0.7207744206107319, 0.1751467304189589, 0.2556378284564827, 0.9705130138084982, 0.46308907656957604, 0.38524205552092494, 0.07688204594887221, 0.2688004403997181, 0.23695350440437526, 0.21240587953220538, 0.27291099693782034, 0.4224996289223751, 0.10651452393929994, 0.5248287200823469, 0.05510227574675574, 0.4930341293847656, 0.9733318622980132, 0.4000373069530971, 0.348031063936384, 0.8549993700532047, 0.12447284758782172, 0.6078322964728788, 0.7940635623929964, 0.5185275675864528, 0.3507955237502385, 0.01551085590650576, 0.08735826814319347, 0.883126418061643, 0.2624988624547894, 0.4697161058769986, 0.6580008111566006, 0.7878164656422483, 0.7809228236929364, 0.9442060324383394, 0.2118716881027566, 0.16906232025423362, 0.23092288985704343, 0.2687235393784539, 0.7251561959942516, 0.24060028531324343, 0.5469231472831371, 0.9709756254986845, 0.01415456872359297, 0.8178094907877757, 0.9479685129227263, 0.8014927099121302, 0.44123506879497315, 0.7237568399143482, 0.14275120186926502, 0.09984101513800041, 0.43639696330634914, 0.18446503402289985, 0.34467835480439213, 0.7302991893336088, 0.5509691967641621, 0.5873110616827971, 0.15957674552636522, 0.10568640685400604, 0.30547069881487976, 0.8987573473807077, 0.5345976707242913, 0.7495435467867618, 0.967591872823667, 0.42584973801217685, 0.7162892626384315, 0.5393191010455851, 0.23863105621341904, 0.8000871968325843, 0.8286450617721073, 0.216601219605994, 0.2975299491657133, 0.6123746565096662, 0.7982174199934429, 0.594763028235273, 0.2708999301847482, 0.9638160387482553, 0.8231005514488804, 0.7296515583267494, 0.025116918401095294, 0.21908648450500745, 0.0757429192625069, 0.655152902427123, 0.2726853247451972, 0.947043200095376, 0.4161400747147797, 0.6926036434255667, 0.7696323210977506, 0.2370910337288973, 0.08198836542254465, 0.5510958323295498, 0.5936916466523172, 0.1296146095789011, 0.6858468344406283, 0.7947357227393718, 0.05447170003910775, 0.3945207447384796, 0.8862591284215835, 0.7228678977075176, 0.6166756457449899, 0.5136049056196913, 0.9001284053711195, 0.9801655205097833}
  2. Sequence(((k * 2) * pi / frac2Den), k, 0, frac2Den - 1) → frac2Angles, {0, 3.141592653589793}
  3. If(animateInequalityControl ≥ 1, Min[1, animateInequalityControl - 1], 0) → animateInequality2S1
  4. Translate(circleLoc2Fixed, Vector[(animateInequality2S1 * Vector[circleLoc2Fixed, circleLoc2Final])]) → circleLoc2
  5. If(animateInequality2S1 > 0 ∧ indexMovingFrac ≟ 2, circleLoc2, fracP2) → frac2Center
  6. Sequence(((k * 2) * pi / frac1Den), k, 0, frac1Den - 1) → frac1Angles, {0, 3.141592653589793}
  7. If(animateInequality2S1 > 0 ∧ indexMovingFrac ≟ 1, circleLoc2, fracP1) → frac1Center
  8. Zip((x(frac2Center) + sin(A), y(frac2Center) + cos(A)), A, frac2Angles) → outerPointsFrac2
  9. Zip((x(frac1Center) + sin(A), y(frac1Center) + cos(A)), A, frac1Angles) → outerPointsFrac1
  10. Take(allRandomSeeds, randIndex, randIndex + numRandoms - 1) → currentRandomSeeds
  11. Element(frac1Options, 1 + floor((currentRandomSeeds(1) * Length[frac1Options]))) → frac1
  12. Element(frac1, 2) → den1
  13. Sequence(Rotate[outerPointsFrac1(1), (-360°) / a, frac1Center], a, 2, 9) → dragPointsFrac1
  14. Point(dragPointsFrac1) → dragPointFrac1
  15. Sequence(Rotate[outerPointsFrac2(1), (-360°) / a, frac2Center], a, 2, 9) → dragPointsFrac2
  16. Point(dragPointsFrac2) → dragPointFrac2
  17. Length(KeepIf[A ≟ true, A, frac2SectorClicked]) → frac2StudentNum
  18. Length(KeepIf[A ≟ true, A, frac1SectorClicked]) → frac1StudentNum
  19. Element(frac1, 1) → num1
  20. KeepIf(Element[A, 1] ≠ num1 ∧ Element[A, 2] ≠ den1, A, allFrac2Options) → frac2Options
  21. Element(frac2Options, 1 + floor((currentRandomSeeds(2) * Length[frac2Options]))) → frac2
  22. Sequence(FracStart + (((fracRadius * 3) + (3 * spaceBetween), 0) * k), k, 0, 1) → homeLocationsFrac
  23. Sequence(Rotate[dragPointFrac2, ((-b) * ((2 * pi)) / frac2DragDen), frac2Center], b, 1, frac2DragDen) → outerPointsFrac2Drag
  24. Sequence(Rotate[dragPointFrac1, ((-b) * ((2 * pi)) / frac1DragDen), frac1Center], b, 1, frac1DragDen) → outerPointsFrac1Drag
  25. Translate(halfCircleLoc2Stationary, Vector[(animateInequality2S1 * Vector[halfCircleLoc2Stationary, halfCircleLoc1])]) → halfCircleLoc2
  26. Element({{1, 2}, {2, 1}}, 1 + floor((currentRandomSeeds(1) * 2))) → order
  27. Element(frac2, 2) → den2
  28. Element(frac2, 1) → num2
  29. Zip(CircleSector[frac1Center, A, B], B, outerPointsFrac1Drag, A, Join[{Take[outerPointsFrac1Drag, 2, frac1DragDen], {Element[outerPointsFrac1Drag, 1]}}]) → frac1AllSectors
  30. Element(frac1AllSectors, 1) → f1sector1
  31. Element(frac1AllSectors, 2) → f1sector2
  32. Element(frac1AllSectors, 3) → f1sector3
  33. Element(frac1AllSectors, 4) → f1sector4
  34. Element(frac1AllSectors, 5) → f1sector5
  35. Element(frac1AllSectors, 6) → f1sector6
  36. Element(frac1AllSectors, 7) → f1sector7
  37. Element(frac1AllSectors, 8) → f1sector8
  38. Element(frac1AllSectors, 9) → f1sector9
  39. Sequence(StartPt + ((boxWidth + spaceBetween, 0) * k), k, 0, 3) → allHomeAnchors
  40. Zip(allHomeAnchors(A), A, homeIndices) → homeLocations
  41. centerBox(boxWidth, boxWidth, P1_{1}) → box1
  42. centerBox(boxWidth, boxWidth, P2) → box2
  43. centerBox(boxWidth, boxWidth, boxAnchors(1)) → frame1
  44. centerBox(boxWidth, boxWidth, boxAnchors(2)) → frame2
  45. Element(movingPoints, movingIndex) → PMove
  46. IndexOf(true, Zip[IsInRegion[PMove, A], A, {frame1, frame2}]) → locationPMove
  47. centerBox(boxWidth, boxWidth, PMove) → highlightBox
  48. centerBox(boxWidth, boxWidth, boxAnchors(locationPMove)) → highlightFrame
  49. Zip(Text[("" * A), B, true, true, 0, 0], A, boxText, B, movingPoints) → boxTextDisplay
  50. Text(("" * boxText(movingIndex)), If[Defined[PMove], PMove, (300, 300)], false, true, 0, 0) → textHightlight
  51. centerBox(boxWidth, boxWidth, fraction1Location) → movingBox1
  52. centerBox(boxWidth, boxWidth, fraction2Location) → movingBox2
  53. Text(fracText(1), fraction1Location, true, true, 0, 0) → textFraction1Moving
  54. Text(fracText(2), fraction2Location, true, true, 0, 0) → textFraction2Moving
  55. Circle(fracP1, fracRadius) → circle1
  56. Circle(fracP2, fracRadius) → circle2
  57. Element(movingPointsFrac, movingIndexFrac) → PMoveFrac
  58. Circle(circleLoc1, fracRadius) → circleFrame1
  59. Circle(circleLoc2, fracRadius) → circleFrame2
  60. Circle(PMoveFrac, fracRadius) → highlightCircle
  61. IndexOf(true, Zip[IsInRegion[PMoveFrac, A], A, {circleFrame1, circleFrame2}]) → locationPMoveFrac
  62. Circle(circleAnchors(locationPMoveFrac), fracRadius) → highlightCircleFrame
  63. Circle(halfCircleLoc1, fracRadius) → halfCircleFrame1
  64. Circle(halfCircleLoc2, fracRadius) → halfCircleFrame2
  65. Text("<", circleLoc1 + (fracRadius + (spaceBetween * 1.5), 0), true, true, 0, 0) → lessThan
  66. Text("<", circleLoc2 + ((-fracRadius) - (spaceBetween * 1.5), 0), true, true, 0, 0) → lessThan2
  67. CircleSector(halfCircleLoc1, halfCircleLoc1 + (0, (-fracRadius)), halfCircleLoc1 + (0, fracRadius)) → halfOne
  68. CircleSector(halfCircleLoc2, halfCircleLoc2 + (0, (-fracRadius)), halfCircleLoc2 + (0, fracRadius)) → halfTwo
  69. Segment(halfCircleLoc1 + (0, fracRadius), halfCircleLoc1 - (0, fracRadius)) → midSeg1
  70. Segment(halfCircleLoc2 + (0, fracRadius), halfCircleLoc2 - (0, fracRadius)) → midSeg2
  71. Zip(Segment[Rotate[fracP1, A, fracP1], Rotate[fracP1 + (0, fracRadius), A, fracP1]], A, frac1Angles) → raysFrac1
  72. Zip(Segment[Rotate[fracP2, A, fracP2], Rotate[fracP2 + (0, fracRadius), A, fracP2]], A, frac2Angles) → raysFrac2
  73. Zip(CircleSector[frac2Center, A, B], B, outerPointsFrac2Drag, A, Join[{Take[outerPointsFrac2Drag, 2, frac2DragDen], {Element[outerPointsFrac2Drag, 1]}}]) → frac2AllSectors
  74. Element(frac2AllSectors, 1) → f2sector1
  75. Element(frac2AllSectors, 2) → f2sector2
  76. Element(frac2AllSectors, 3) → f2sector3
  77. Element(frac2AllSectors, 4) → f2sector4
  78. Element(frac2AllSectors, 5) → f2sector5
  79. Element(frac2AllSectors, 6) → f2sector6
  80. Element(frac2AllSectors, 7) → f2sector7
  81. Element(frac2AllSectors, 8) → f2sector8
  82. Element(frac2AllSectors, 9) → f2sector9
  83. Sequence(false, k, 1, 9) → allFalse
  84. Zip(If[frac2SectorClicked(B), Element[frac2AllSectors, B]], B, Sequence[j, j, 1, 9]) → frac2ColoredSectors
  85. Corner(5) → appSize
  86. Text("< \dfrac{1}{2}", boxLoc1 + (boxWidth, 0), true, true, 0, 0) → textLessThanHalf
  87. Text(" \dfrac{1}{2}<", boxLoc2 + (((-boxWidth) * 1.1), 0), true, true, 0, 0) → textGreaterThanHalf
  88. Text("<", fraction1Location + (boxWidth / 2 + (spaceBetween * 1.5), 0), true, true, 0, 0) → textLessThan
  89. onboardingTextOffset(Corner[onboardingText, 1], Corner[onboardingText, 3], onboardingCase, Corner[1], Corner[3], Corner[5]) → OnboardingTextOffset
  90. If(animateInequalityControl < 2, 0, animateInequalityControl - 2) → animateInequality2
  91. Text(fracText(1), finalFraction1Location + (animateInequality2 * Vector[finalFraction1Location, finalInequalityLoc1]), true, true, 0, 0) → movingFinalFrac1
  92. Text(fracText(2), finalFraction2Location + (animateInequality2 * Vector[finalFraction2Location, finalInequalityLoc2]), true, true, 0, 0) → movingFinalFrac2
  93. If(frac1DragDen ≟ den1, colorPink, colorPurple) → frac1Color
  94. If(frac2DragDen ≟ den1, colorPink, colorPurple) → frac2Color
  95. Text((((((("\text{= \textcolor{" * colorPink) * "}\dfrac{{") * frac1StudentNum) * "}}{") * frac1DragDen) * "}}"), homeLocationsFrac(1) + (fracRadius, 0), true, true, 1, 0) → fracLabel1
  96. onboardingTextOffset(Corner[onboardingText3, 1], Corner[onboardingText3, 3], onboardingCase3, Corner[1], Corner[3], Corner[5]) → OnboardingTextOffset3
  97. onboardingTextOffset(Corner[onboardingText2, 1], Corner[onboardingText2, 3], onboardingCase2, Corner[1], Corner[3], Corner[5]) → OnboardingTextOffset2
  98. expandCircle(dragPointFrac1, 7 + (7 * pulsing2), Corner[1], Corner[3], Corner[5]) → pulsingCircle
  99. Sequence((((("SetFixed(circle" * A) * ",false,") * enableInput) * ")"), A, 1, Length[movingPointsFrac]) → cmdFixCircles
  100. Sequence((((("SetFixed(box" * A) * ",false,") * enableInput) * ")"), A, 1, Length[movingPoints]) → cmdFixBoxes
  101. Text((((((("\text{= \textcolor{" * colorPurple) * "}\dfrac{{") * frac2StudentNum) * "}}{") * frac2DragDen) * "}}"), homeLocationsFrac(2) + (fracRadius, 0), true, true, 1, 0) → fracLabel2
  102. expandCircle(fracP1, (fracRadius * unitPixels) + (7 * pulsing), Corner[1], Corner[3], Corner[5]) → pulsingFraction
  103. onboardingTextOffset(Corner[onboardingText4, 1], Corner[onboardingText4, 3], onboardingCase4, Corner[1], Corner[3], Corner[5]) → OnboardingTextOffset4
  104. Zip(If[frac1SectorClicked(B), Element[frac1AllSectors, B]], B, Sequence[j, j, 1, 9]) → frac1ColoredSectors
  105. Sequence(Segment[frac1Center, Rotate[dragPointFrac1, (b * (360°) / frac1DragDen), frac1Center]], b, 2, frac1DragDen + 1) → raysFrac1Drag
  106. Sequence(Segment[frac2Center, Rotate[dragPointFrac2, (b * (360°) / frac2DragDen), frac2Center]], b, 2, frac2DragDen + 1) → raysFrac2Drag
  107. Circle(frac1Center, fracRadius) → frac1Frame
  108. Circle(frac2Center, fracRadius) → frac2Frame

AI 绘图提示语参考

在画布中展示分数大小比较的直观模型:用一整圆与一条半圆(或等价的半圆扇形)作为参照基准,并在圆上按等分划出若干扇形边界;再并排放置一组用于拖动的点,使学生可把扇形边界旋转到不同位置。准备两套不同分母的圆弧分割,每套都有其中心、圆周上的分割点、对应的扇形区域与可拖动位置点;半圆参照同时平移到与另一圆的位置对齐。最后在下方框架区域中安排可交互的目标框,用于比较两种分数在圆上的占比。
以上提示语为根据原始绘图命令整理而来,仅供参考。