体积求维度

体积求维度
几何画板及绘图内容加载中,请稍等……
2019-09-12 00:53
①本范例演示如何根据体积计算三维图形的维度参数;②涉及核心数学概念包括体积计算、逻辑判断、抛物线、频率分布、乘法运算及立体几何;③构造要点:使用If、Unique、Sequence、Flatten、Reverse、Textfield、Mod、Element、Polygon、Text等GeoGebra命令和对象;④适合高中及以上数学学习者,用于理解体积与维度关系及编程逻辑应用。

GeoGebra 命令及参数

  1. If(Defined[volumeHolder] ∧ volumeHolder > 1 ∧ IsInteger[volumeHolder], volumeHolder, 1) → volume
  2. Unique(Sort[Sequence[If[IsInteger[volume / i], i, 1], i, 1, volume]]) → factorsOfVolume
  3. Sequence(Join[{{Element[factorsOfVolume, i]}, Unique[Sort[Sequence[If[IsInteger[volume / Element[factorsOfVolume, i] / j], j, 1], j, 1, volume / Element[factorsOfVolume, i]]]]}], i, 1, Length[factorsOfVolume]) → secondaryVolume
  4. Flatten(Sequence[Sequence[{Element[secondaryVolume, i, 1], Element[secondaryVolume, i, 1 + j], Element[secondaryVolume, i, Length[Element[secondaryVolume, i]] + 1 - j]}, j, 1, ceil((Length[Element[secondaryVolume, i]] - 1) / 2)], i, 1, Length[secondaryVolume]]) → l1
  5. Unique(Sequence[Sort[{l1(i), l1(i + 1), l1(i + 2)}], i, 1, Length[l1], 3]) → m3
  6. Reverse(Sequence[Unique[{{Element[m3, i, 1], Element[m3, i, 2], Element[m3, i, 3]}, {Element[m3, i, 1], Element[m3, i, 3], Element[m3, i, 2]}, {Element[m3, i, 2], Element[m3, i, 1], Element[m3, i, 3]}, {Element[m3, i, 2], Element[m3, i, 3], Element[m3, i, 1]}, {Element[m3, i, 3], Element[m3, i, 1], Element[m3, i, 2]}, {Element[m3, i, 3], Element[m3, i, 2], Element[m3, i, 1]}}], i, 1, Length[m3]]) → l3
  7. Textfield(volumeHolder) → InputBox1
  8. Sequence(Unique[{{Element[m3, i, 1], Element[m3, i, 2], Element[m3, i, 3]}, {Element[m3, i, 1], Element[m3, i, 2], Element[m3, i, 3]}, {Element[m3, i, 1], Element[m3, i, 2], Element[m3, i, 3]}, {Element[m3, i, 1], Element[m3, i, 2], Element[m3, i, 3]}, {Element[m3, i, 1], Element[m3, i, 2], Element[m3, i, 3]}, {Element[m3, i, 1], Element[m3, i, 2], Element[m3, i, 3]}}], i, 1, Length[m3]) → l4
  9. Mod(10, 3) → b
  10. Element(l3, a, c) → l5
  11. Element(l5, 1) → l
  12. Element(l5, 2) → w
  13. Element(l5, 3) → h
  14. Polygon((0, 0), (l, 0), (l + ((scale * w) * cos(angle)), ((scale * w) * sin(angle))), (l + ((scale * w) * cos(angle)), ((scale * w) * sin(angle)) + h), (((scale * w) * cos(angle)), ((scale * w) * sin(angle)) + h), (0, h)) → poly2, f, g, i, j, k, m
  15. Sequence(Segment[(i, 0), (i, h)], i, 1, l - 1) → lines1
  16. Sequence(Segment[(l, 0) + (((i * scale) * cos(angle)), ((i * scale) * sin(angle))), (l, h) + (((i * scale) * cos(angle)), ((i * scale) * sin(angle)))], i, 1, w - 1) → lines2
  17. Sequence(Segment[(0, h) + (((i * scale) * cos(angle)), ((i * scale) * sin(angle))), (l, h) + (((i * scale) * cos(angle)), ((i * scale) * sin(angle)))], i, 1, w - 1) → lines3
  18. Sequence(Segment[(l, i), (0, i)], i, 1, h - 1) → lines5
  19. Sequence(Segment[(i, h), (i, h) + (((w * scale) * cos(angle)), ((w * scale) * sin(angle)))], i, 1, l - 1) → lines6
  20. Sequence(Segment[(l, i), (l, i) + (((w * scale) * cos(angle)), ((w * scale) * sin(angle)))], i, 1, h - 1) → lines4
  21. Text(l, Midpoint[f] - (big / 40, big / 16)) → text1
  22. Text(w, Midpoint[g] - (big / 100, big / 16)) → text2
  23. Text("Slide to change dimensions") → text4
  24. Text(h, ((((-big)) / 20 * (floor(log(10, h)) + 1)), h / 2)) → text3