Dimensions from Volume

Dimensions from Volume
Loading the math board and drawing, please wait…
2019-09-12 00:53
This example demonstrates how to calculate the dimensions of a 3D shape based on its volume. It involves core math concepts like volume calculation, logic, parabola, frequency distribution, multiplication, and solid geometry. Key GeoGebra commands and objects used include If, Unique, Sequence, Flatten, Reverse, Textfield, Mod, Element, Polygon, and Text. Suitable for high school and above, focusing on understanding the relationship between volume and dimensions and applying logical programming concepts.

GeoGebra Commands & Parameters

  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