Three Moving Points in 3D Space Inducing 8 Geometric Medians on a Sphere

Three Moving Points in 3D Space Inducing 8 Geometric Medians on a Sphere
Loading the math board and drawing, please wait…
2020-12-10 23:57
This example demonstrates how three moving points in three-dimensional space 'induce' eight geometric medians on a sphere. Key math concepts include vectors, geometric transformations, solid geometry, and functions. Construction highlights the use of GeoGebra commands like Polygon, PointIn, Sphere, Vector, Translate to create points and geometric objects, with animations showing the motion paths. Suitable for high school and above students to explore spatial geometry and vector applications.

GeoGebra Commands & Parameters

  1. Polygon({((-π), ((-π)) / 2), ((-π), π / 2), (π, π / 2), (π, ((-π)) / 2)}) → q
  2. Polygon({B01, B02, B04, B03}) → q2
  3. PointIn(q2) → B10
  4. PointIn(q2) → B9
  5. PointIn(q2) → B8
  6. PointIn(q2) → B7
  7. PointIn(q2) → B6
  8. PointIn(q2) → B5
  9. PointIn(q2) → B4
  10. PointIn(q2) → B3
  11. PointIn(q2) → B2
  12. PointIn(q2) → B1
  13. First({P1, P2, P3, P4, P5, P6, P7, P8, P9, P10}, n) → lP
  14. Sphere(O, R) → b
  15. PointIn(q) → A_2
  16. Circle(O, R, xOyPlane) → c
  17. PointIn(q) → RZ1_2
  18. PointIn(q) → RZ2_2
  19. Angle(sumunitA, vA) → αA
  20. Angle(sumunitZ1, vZ1) → αZ1
  21. Angle(sumunitZ2, vZ2) → αZ2
  22. Zip(Segment[A, p], p, lP) → seg
  23. Sum(seg) → sum_seg
  24. PolyLine({((-π), ((-π)) / 2), ((-π), π / 2), (π, π / 2), (π, ((-π)) / 2), ((-π), ((-π)) / 2)}) → q1
  25. Flatten(Sequence[Sequence[((-π) + ((2 * π / na) * i), ((-π)) / 2 + (π / na * j)), j, 1, na - 1], i, 1, na - 1]) → ltest_2
  26. Zip((R; x(a); y(a)), a, ltest_2) → ltest_3
  27. Length(lZmax') → lälZmax'
  28. Zip(Vector[(R * UnitVector[a])], a, lZmax') → vlZmax
  29. Zip(Vector[(R * UnitVector[a])], a, lZmin') → vlZmin
  30. Zip(Vector[(R * UnitVector[Sum[Zip[UnitVector[p - b], p, lP]]])], b, lZmax') → sumunit_max
  31. Zip(Vector[(R * UnitVector[Sum[Zip[UnitVector[p - b], p, lP]]])], b, lZmin') → sumunit_min
  32. Zip(Angle[a, Vector[b]], Vector[a], sumunit_max, Vector[b], vlZmax) → αmax
  33. Zip(Angle[a, Vector[b]], Vector[a], sumunit_min, Vector[b], vlZmin) → αmin
  34. Zip((arg(a), alt(a)), a, lP) → lP_2
  35. Textfield(n) → InputBox11
  36. Zip(Vector[(R * UnitVector[a])], a, lZsad') → vlZsad
  37. If(αZ1 > 100°, 180° - αZ1, αZ1) → αZ1'
  38. KeepIf(x > 0, Sequence[If[abs(Element[αsad, i] - π) < 0.001 ∨ abs(Element[αsad, i]) < 0.001, i, 0], i, 1, Length[αsad]]) → Nαsad
  39. Textfield(m_2) → InputBox14
  40. PointIn(q) → RZ3_2
  41. Sum(Zip[1 / Length[p - Z3], p, lP]) → ZahZ3
  42. Angle(sumunitZ3, vZ3) → αZ3
  43. Textfield(R) → InputBox1
  44. Textfield(na) → InputBox2
  45. Function((q_f * f(u, v)) + b_0f - 0.9999, u, (-π), π, v, ((-π)) / 2, π / 2) → f0
  46. Max(f(Zmax_2)) → m
  47. Zip((x(a), y(a), f0(a)), a, Zmax_2) → fmax3D
  48. Zip((x(a), y(a), f0(a)), a, Zmin_2) → fmin3D
  49. Zip((x(a), y(a), f0(a)), a, Zsad_2) → fsad3D
  50. Sequence(Vector[(1.3 * Point[O, Vector[Element[sumunit_sad, i]]]), (1.5 * Point[O, Vector[Element[sumunit_sad, i]]])], i, 1, Length[sumunit_sad]) → sumunit_sad1
  51. Sequence(Vector[(1.3 * Point[O, Vector[Element[vlZmax, i]]]), (1.5 * Point[O, Vector[Element[vlZmax, i]]])], i, 1, Length[vlZmax]) → vsumunit_max2
  52. Sequence(Vector[(1.3 * vlZmax(i)), (1.5 * vlZmax(i))], i, 1, Length[vlZmax]) → lvlmax
  53. Sequence(Vector[(1.3 * vlZmax(i)), (-1.1 * sumunit_max(i))], i, 1, Length[sumunit_max]) → l1z
  54. Sequence(Vector[(1.3 * vlZmin(i)), (1.5 * vlZmin(i))], i, 1, Length[vlZmin]) → lvlmin
  55. Sequence(Vector[(1.3 * vlZmin(i)), (-1.1 * sumunit_min(i))], i, 1, Length[sumunit_min]) → l2z
  56. Sequence(Vector[(1.3 * vlZsad(i)), (1.5 * vlZsad(i))], i, 1, Length[vlZsad]) → lvlsad
  57. Sequence(Vector[(1.3 * vlZsad(i)), (-1.1 * sumunit_sad(i))], i, 1, Length[sumunit_sad]) → l3z
  58. Zip((Length[a]; arg(a); alt(a)), a, lP) → lPsphere
  59. CurveCartesian((-π) + ((2 * π) * a), ((-π)) / 2, f0((-π) + ((2 * π) * a), ((-π)) / 2), a, 0, 1) → par1
  60. CurveCartesian((-π) + ((2 * π) * a), π / 2, f0((-π) + ((2 * π) * a), π / 2), a, 0, 1) → par2
  61. CurveCartesian(π, ((-π)) / 2 + (π * a), f0(π, ((-π)) / 2 + (π * a)), a, 0, 1) → par4
  62. Zip(Text["d_{" + (a) + "}", (A + Element[lP, a]) / 2], a, 1…n) → lPtxt
  63. CurveCartesian((-π), ((-π)) / 2 + (π * a), f0((-π), ((-π)) / 2 + (π * a)), a, 0, 1) → par3
  64. Zip((x(a), y(a)), a, lP) → lP_{Gr1}
  65. Textfield(q_f) → InputBox3
  66. Textfield(b_0f) → InputBox4
  67. Textfield(step1) → InputBox5
  68. Textfield(step2) → InputBox6
  69. TableText(Append["i", Sequence[Length[αmax]]], Append["P_{Max }", lZmax'], Append["(f'x,f'y)", lZf'xymax], Append[" Δα≟ π ", αmax], "v") → text2a
  70. TableText(Append["i", Sequence[Length[αmin]]], Append["P_{Min }", lZmin'], Append["(f'x,f'y)", lZf'xymin], Append[" Δα≟ π ", αmin], "v") → text2b
  71. TableText(Append["i", Sequence[Length[αsad]]], Append["P_{sad }", lZsad'], Append["(f'x,f'y)", lZf'xysad], Append[" Δα≟ π ", αsad], "v") → text2c
  72. First({aP1, aP2, aP3, aP4, aP5, aP6, aP7, aP8, aP9, aP10}, n) → Output
  73. Vector((1.3 * A), (1.5 * A)) → lvA
  74. Vector((1.3 * A), (1.1 / 1.7 * Point[O, Vector[(-sumunitA)]])) → l1A
  75. Zip(Segment[F_o, p], p, lP) → seg0
  76. Sum(seg0) → sum_seg0
  77. Translate(q, Vector[(0, 0, -1)]) → q'
  78. Zip(Segment[(x(a), y(a), -1), (x(a), y(a), f0(x(a), y(a)))], a, {((-π), ((-π)) / 2), ((-π), π / 2), (π, π / 2), (π, ((-π)) / 2)}) → lseg
  79. RotateText(txt, 90°) → txt1

AI Drawing Prompt Reference

Create a 3D sphere centered at a point, then generate several candidate points on the sphere from a polygonal region and its planar counterpart via point-in intersections. Induce circular/arc geometry through the sphere and a reference plane, and compute direction vectors from the candidate points around the sphere. Define angular quantities between the relevant unit directions and the vector directions. Add a scalar function that maps spherical-style parameters to a height value on the sphere, and mark the locations where this function attains a maximum and a minimum on the sphere. Display these extrema together with their associated direction vectors and angles to illustrate how motion of three points can lead to eight geometric medians on the spherical surface.
The prompt above was compiled from the original drawing commands and is for reference only.