比例关系图解模板(白底)

比例关系图解模板(白底)
几何画板及绘图内容加载中,请稍等……
2018-02-01 06:16
① 该范例提供了一个可交互的图解模板,用于展示比例关系,支持多种视觉呈现方式,包括面积模型、柱状图等。② 核心数学概念是比例(Ratios),涉及两个数量(quantity1和quantity2)及其总和,通过可视化模型帮助学生理解比例分配、部分与整体的关系。③ 作图要点:使用GeoGebra命令如Element、If、SelectedIndex、Point、Textfield、Segment、Sequence、Vector、Mirror、Midpoint、Text、Circle、CircleSector、Polygon、Flatten、Zip等构建动态界面;对象包括数量输入框、滑块(slidePt)、视觉类型选择(visualType)、帮助按钮等,支持用户调整数值并实时更新图形。④ 适合中学数学教学,用于比例概念的可视化演示,也可用于学生自主探索比例关系,培养数形结合思维。

GeoGebra 命令及参数

  1. Element(KeepIf[round(x) ≟ x, Sequence[sumQuantity12 / Element[Sequence[floor(sqrt(sumQuantity12) - k), k, 0, 5], i], i, 1, 10]], 1) → areaModelColumns
  2. If(quantity2 ≟ 0, areaModelRows - 1, If[areaModelColumns > quantity1, 0, If[(2 * areaModelColumns) > quantity1, 1, If[(3 * areaModelColumns) > quantity1, 2, If[(4 * areaModelColumns) > quantity1, 3, If[(5 * areaModelColumns) > quantity1, 4, 5]]]]]) → setFullRows
  3. SelectedIndex(visualType) → visualTypeSelected
  4. If(quantity2 < 100, 100, If[quantity2 < 500, 10, 1]) → roundingFactorDNL2values
  5. Point(Segment[(0, 0.85), (NLlength, 0.85)]) → slidePt
  6. If(quantity1 < 100, 100, If[quantity1 < 500, 10, 1]) → roundingFactorDNL1values
  7. Textfield(q1labelForLengthAlwaysShow) → q1blabelInput
  8. Textfield(q2labelForLengthAlwaysShow) → q2blabelInput
  9. Textfield(quantity1) → q1avalueInput
  10. Textfield(quantity2) → q2avalueInput
  11. Segment(slidePt + (0, 1.7), slidePt - (0, 1.75)) → slideSeg
  12. Textfield(locationXq1) → locationXq1Input
  13. Textfield(locationXq2) → locationXq2Input
  14. Sequence(Text[(p * quantity2), ((length * p) + xOffSet, y(Master) - (1.7 * yOffSet))], p, 2, 4) → hashMarkValuesTextNL2
  15. Vector(instructionsArrowsPt, (1.4187, -1)) → instructionsArrow2
  16. Vector(instructionsArrowsPt, (0.28383, -1)) → instructionsArrow1
  17. Mirror(instructionsArrow1, x = x(instructionsArrowsPt)) → instructionsArrow3
  18. Mirror(instructionsArrow2, x = x(instructionsArrowsPt)) → instructionsArrow4
  19. Midpoint(Master, Master + (-0.8 + NLlength, 0.9)) → CircleModelCenter
  20. If(quantity1 ≥ quantity2, ceil(quantity1), ceil(quantity2)) → ceilGreaterOfQuantity12
  21. Sequence(((length * k), y(Master)), k, 0, 4) → hashMajorNL2
  22. Segment(Master + (0, (-NLgap)), Master + (4.3, (-NLgap))) → NL3segment
  23. Segment(Master, Master + (NLlength, 0)) → NL2segment
  24. Sequence(((length * k), y(Master) - NLgap), k, 0, 4) → hashMajorNL3
  25. Text(0, Master + (-0.035, (-1.7 * yOffSet))) → zeroNL2
  26. Text(0, Master + (-0.035, If[visualTypeSelected ≟ 3, NLgap - (1.7 * yOffSet), NLgap + yOffSet])) → zeroNL1
  27. Sequence((k, y(Master)), k, 0, NLlength, length / hashMinor) → hashMinorNL2
  28. Sequence((k, y(Master) - NLgap), k, 0, NLlength, length / hashMinor) → hashMinorNL3
  29. Text(0, Master + (-0.035, (-NLgap) - (1.7 * yOffSet))) → zeroNL3
  30. Circle(CircleModelCenter, circleModelRadius) → circleModelOutline
  31. Circle(CircleModelCenter, circleModelRadius) → circleModelWhiteBackground
  32. CircleSector(CircleModelCenter, CircleModelCenter + (0, circleModelRadius), Rotate[CircleModelCenter + (0, circleModelRadius), ((2 * π) * quantity1 / sumQuantity12), CircleModelCenter]) → circleModelSectorQ1
  33. Sequence(Segment[CircleModelCenter, Rotate[CircleModelCenter + (0, circleModelRadius), ((i * 2) * π / sumQuantity12), CircleModelCenter]], i, 0, sumQuantity12 - 1, 1) → circleModelDividers
  34. Sequence(Text[(p * quantity1), ((length * p) + xOffSet, y(Master) + If[visualTypeSelected ≟ 3, NLgap - (1.7 * yOffSet), NLgap + (1.1 * yOffSet)])], p, 2, 4) → hashMarkValuesTextNL1
  35. Sequence(((length * k), y(Master) + NLgap), k, If[visualTypeSelected ≟ 3, -1, 0], 4) → hashMajorNL1
  36. Sequence((k, y(Master) + NLgap), k, If[visualTypeSelected ≟ 3, -1, 0], NLlength, length / hashMinor) → hashMinorNL1
  37. Segment(Master + (If[visualTypeSelected ≟ 3, -1.2, 0], NLgap), Master + (NLlength, NLgap)) → NL1segment
  38. Polygon(Master + (0, tapeDiagram2VerticalOffset), Master + (tapeDiagramModelsWidth, tapeDiagram2VerticalOffset), Master + (tapeDiagramModelsWidth, tapeDiagramModelsHeight + tapeDiagram2HeightDiff + tapeDiagram2VerticalOffset), Master + (0, tapeDiagramModelsHeight + tapeDiagram2HeightDiff + tapeDiagram2VerticalOffset)) → tapeDiagram2Outline, tapeDiagram2OutlineSeg_1, tapeDiagram2OutlineSeg_2, tapeDiagram2OutlineSeg_3, tapeDiagram2OutlineSeg
  39. Polygon(Master + (0, tapeDiagram2VerticalOffset), Master + ((quantity1 * unit), tapeDiagram2VerticalOffset), Master + ((quantity1 * unit), tapeDiagramModelsHeight + tapeDiagram2HeightDiff + tapeDiagram2VerticalOffset), Master + (0, tapeDiagramModelsHeight + tapeDiagram2HeightDiff + tapeDiagram2VerticalOffset)) → tapeDiagram2Quantity1Poly, g, h, i, j
  40. Sequence(Segment[Master + (i, tapeDiagram2VerticalOffset), Master + (i, tapeDiagramModelsHeight + tapeDiagram2HeightDiff + tapeDiagram2VerticalOffset)], i, 0, tapeDiagramModelsWidth, unit) → tapeDiagram2Quantity1Dividers
  41. Polygon(Master, Master + ((quantity2 * unit), 0), Master + ((quantity2 * unit), tapeDiagramModelsHeight), Master + (0, tapeDiagramModelsHeight)) → tapeDiagram1Quantity2Poly, tapeDiagram1Quantity2PolySeg_1, tapeDiagram1Quantity2PolySeg_2, tapeDiagram1Quantity2PolySeg_3, tapeDiagram1Quantity2PolySeg
  42. Polygon(MasterTape2, MasterTape2 + ((quantity1 * unit), 0), MasterTape2 + ((quantity1 * unit), tapeDiagramModelsHeight), MasterTape2 + (0, tapeDiagramModelsHeight)) → tapeDiagram1Quantity1Poly, tapeDiagram1Quantity1PolySeg, tapeDiagram1Quantity1PolySeg_1, tapeDiagram1Quantity1PolySeg_2, tapeDiagram1Quantity1PolySeg_3
  43. Polygon(MasterTape2, MasterTape2 + ((quantity1 * unit), 0), MasterTape2 + ((quantity1 * unit), tapeDiagramModelsHeight), MasterTape2 + (0, tapeDiagramModelsHeight)) → tapeDiagram1Quantity1PolyWhite, v2, k, l, m
  44. Sequence(Segment[MasterTape2 + (i, 0), MasterTape2 + (i, tapeDiagramModelsHeight)], i, 0, (quantity1 * unit), unit) → tapeDiagram1Quantity1Dividers
  45. Sequence(Segment[Master + (0 + i, 0), Master + (0 + i, tapeDiagramModelsHeight)], i, 0, (quantity2 * unit), unit) → tapeDiagram1Quantity2Dividers
  46. Polygon(Master, Master + (tapeDiagramModelsWidth, 0), Master + (tapeDiagramModelsWidth, areaModelHeight), Master + (0, areaModelHeight)) → areaModelOutline, areaModelOutlineSeg_1, areaModelOutlineSeg_2, areaModelOutlineSeg_3, areaModelOutlineSeg
  47. Sequence(Segment[Master + (i, 0), Master + (i, areaModelHeight)], i, 0, tapeDiagramModelsWidth, tapeDiagramModelsWidth / areaModelColumns) → areaModelColumnDiv
  48. Sequence(Segment[Master + (0, i), Master + (tapeDiagramModelsWidth, i)], i, 0, areaModelHeight, areaModelHeight / areaModelRows) → areaModelRowDiv
  49. Polygon(Master, Master + ((floor(quantity1 / areaModelRows) * tapeDiagramModelsWidth / areaModelColumns), 0), Master + ((floor(quantity1 / areaModelRows) * tapeDiagramModelsWidth / areaModelColumns), areaModelHeight), Master + (0, areaModelHeight)) → areaModelQ1FullColumns, master, f, n, p
  50. Polygon(Master + ((floor(quantity1 / areaModelRows) * tapeDiagramModelsWidth / areaModelColumns), 0), Master + (((floor(quantity1 / areaModelRows) + 1) * tapeDiagramModelsWidth / areaModelColumns), 0), Master + (((floor(quantity1 / areaModelRows) + 1) * tapeDiagramModelsWidth / areaModelColumns), ((quantity1 - (floor(quantity1 / areaModelRows) * areaModelRows)) * areaModelHeight / areaModelRows)), Master + ((floor(quantity1 / areaModelRows) * tapeDiagramModelsWidth / areaModelColumns), ((quantity1 - (floor(quantity1 / areaModelRows) * areaModelRows)) * areaModelHeight / areaModelRows))) → areaModelQ1PartialColumn, q, r, s, t
  51. Sequence(2 + i, i, 0, areaModelRows - 1) → deleteListRows
  52. Flatten(Sequence[(k / k * Sequence[i, i, 0, areaModelColumns - 1, 1]), k, 1, areaModelRows]) → setChangeX
  53. Flatten(Sequence[(k * Sequence[i / i, i, 1, areaModelColumns, 1]), k, 0, areaModelRows - 1]) → setChangeY
  54. Zip(Polygon[MS + (a, b), MS + (a + setPolyWidth, b), MS + (a + setPolyWidth, b - setPolyHeight), MS + (a, b - setPolyHeight)], a, (setSpacingHoriz * setChangeX), b, ((-setSpacingVert) * setChangeY)) → setModel1Outlines
  55. Flatten(Sequence[(k / k * Sequence[i, i, 0, areaModelColumns - 1, 1]), k, 1, areaModelRows - 1]) → setChangeXQ1Full
  56. Flatten(Sequence[(k * Sequence[i / i, i, 1, areaModelColumns, 1]), k, 0, setFullRows - 1]) → setChangeYQ1Full
  57. Zip(Polygon[MS + (a, b), MS + (a + setPolyWidth, b), MS + (a + setPolyWidth, b - setPolyHeight), MS + (a, b - setPolyHeight)], a, (setSpacingHoriz * setChangeXQ1Full), b, ((-setSpacingVert) * setChangeYQ1Full)) → setModel1Q1FullRows
  58. Sequence(Polygon[MSPart + (i, 0), MSPart + (i + setPolyWidth, 0), MSPart + (i + setPolyWidth, setPolyHeight), MSPart + (i, setPolyHeight)], i, 0, (setSpacingHoriz * (quantity1 - (setFullRows * areaModelColumns) - 1)), setSpacingHoriz) → setModel1Q1PartialRow
  59. Circle((-0.7058662075654852, 1.0923793127338763), setModel2Radius) → setModel2CircleQ1_2
  60. Circle((-0.09429794097292479, 1.2626096549812897), setModel2Radius) → setModel2CircleQ1_1
  61. Circle((0.0317986088399741, 0.6384317334074399), setModel2Radius) → setModel2CircleQ1_3
  62. Circle((0.4542220507131861, 1.098684140224521), setModel2Radius) → setModel2CircleQ1_4
  63. Circle((0.9649130774554273, 1.3382675848690295), setModel2Radius) → setModel2CircleQ1_5
  64. Circle((0.5866234280167298, 0.47450621865067083), setModel2Radius) → setModel2CircleQ1_6
  65. Circle((-0.5230262103367816, 0.5501641485384103), setModel2Radius) → setModel2CircleQ1_7
  66. Circle((1.0657903173057461, 0.7393089732577589), setModel2Radius) → setModel2CircleQ1_8
  67. Circle((1.5260427241228276, 1.1239034501871006), setModel2Radius) → setModel2CircleQ1_9
  68. Circle((0.17680964112480807, 0.12143587917455337), setModel2Radius) → setModel2CircleQ1_{10}
  69. Circle((0.8072923901893032, -0.036184808091570236), setModel2Radius) → setModel2CircleQ1_{11}
  70. Circle((1.3368978994034795, 0.2412276014968075), setModel2Radius) → setModel2CircleQ1_{12}
  71. Circle((1.7845406512392712, 0.5879931134822798), setModel2Radius) → setModel2CircleQ1_{13}
  72. Circle((2.1250013357340993, 1.0860744852432314), setModel2Radius) → setModel2CircleQ1_{14}
  73. Circle((2.358279952887962, 0.5501641485384104), setModel2Radius) → setModel2CircleQ1_{15}
  74. Circle((2.824837187195688, 1.0545503477900064), setModel2Radius) → setModel2CircleQ1_{16}
  75. Circle((3.4994537286946987, 1.0608551752806514), setModel2Radius) → setModel2CircleQ1_{17}
  76. Circle((2.9824578744618124, 0.4618965636693809), setModel2Radius) → setModel2CircleQ1_{18}
  77. Circle((2.0241240958837796, 0.045777949286814126), setModel2Radius) → setModel2CircleQ1_{19}
  78. Circle((3.562502003601148, 0.4808110461413158), setModel2Radius) → setModel2CircleQ1_{20}
  79. Circle((4.003835832062515, 0.13404758486902935), setModel2Radius) → setModel2CircleQ2_1
  80. Circle((3.7275227324367166, -0.3656799944574073), setModel2Radius) → setModel2CircleQ2_2
  81. Circle((4.395834446445083, -0.22697378966321807), setModel2Radius) → setModel2CircleQ2_3
  82. Circle((3.3618427379793094, -0.7376648164054594), setModel2Radius) → setModel2CircleQ2_4
  83. Circle((4.131031691837994, -0.6998358514615898), setModel2Radius) → setModel2CircleQ2_5
  84. Circle((3.26096549812899, -0.006304827490644951), setModel2Radius) → setModel2CircleQ2_6
  85. Circle((2.61156826659256, 0.01891448247193486), setModel2Radius) → setModel2CircleQ2_7
  86. Circle((4.3895296189544375, 0.554824819176756), setModel2Radius) → setModel2CircleQ2_8
  87. Circle((2.8133227462931987, -0.7187503339335245), setModel2Radius) → setModel2CircleQ2_9
  88. Circle((2.3152413745322478, -0.46655723430772644), setModel2Radius) → setModel2CircleQ2_{10}
  89. Circle((4.269737896632183, 1.1285641208254464), setModel2Radius) → setModel2CircleQ2_{11}
  90. Circle((1.5712717306361432, -0.2837172370790227), setModel2Radius) → setModel2CircleQ2_{12}
  91. Circle((1.8297696577525862, -0.7439696438961044), setModel2Radius) → setModel2CircleQ2_{13}
  92. Circle((1.085800013856482, -0.5043861992515962), setModel2Radius) → setModel2CircleQ2_{14}
  93. Circle((0.5688041596235955, -0.7124455064428795), setModel2Radius) → setModel2CircleQ2_{15}
  94. Circle((-0.38952961895443716, -0.7124455064428795), setModel2Radius) → setModel2CircleQ2_{16}
  95. Circle((0.10224692531586876, -0.4287282693638568), setModel2Radius) → setModel2CircleQ2_{17}
  96. Circle((-0.42105375640766207, -0.006304827490644885), setModel2Radius) → setModel2CircleQ2_{18}
  97. Circle((-0.9758785755844179, -0.7250551614241696), setModel2Radius) → setModel2CircleQ2_{19}
  98. Circle((-0.9317447831499027, -0.13870620479418896), setModel2Radius) → setModel2CircleQ2_{20}

AI 绘图提示语参考

绘制一个用于比例教学的交互式图表模板,包含两个数量输入框和滑块。图形由三部分组成:上方为条形图,显示两个数量的分段比例,并带有刻度标记;中间为面积模型,用网格划分表示部分与整体的关系;下方为圆形模型,用扇形表示第一个数量占总和的比例。所有模型均基于两个数量值动态更新,并配有标签和数值标注。背景为白色,整体布局清晰,适合课堂演示。
以上提示语为根据原始绘图命令整理而来,仅供参考。