14 Geometric Medians Induced by 6 Moving Points in 3D Space on a Sphere

14 Geometric Medians Induced by 6 Moving Points in 3D Space on a Sphere
Loading the math board and drawing, please wait…
2020-12-11 18:38
This example demonstrates how 6 moving points in three-dimensional space induce 14 geometric medians on a sphere. It involves core mathematical concepts such as solid geometry, vectors, functions, and geometric transformations. The construction uses GeoGebra commands like Polygon, PointIn, Sphere, Vector, Translate, and others to create points and geometric objects, with Sum and Flatten for complex structures. Suitable for high school and above students to understand spatial geometry, vector operations, and dynamic geometric constructions.

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 geometric construction on a sphere: first form a base polygonal patch on the sphere using four characteristic vertices defined by spherical-angle values (longitudes ±π and latitudes ±π/2). From that patch, place a set of moving points on the sphere—specifically six interior points obtained from repeated sampling. Build the sphere centered at the origin with a given radius, and use auxiliary circular and segment geometry to visualize the setup. Use vectors from the sphere center and angle measurements between these directions to drive the selection process. Apply constraints to choose candidates corresponding to extremal angular conditions and mark the resulting geometric median locations on the sphere; in this construction, the output is a set of 14 geometric medians distributed over the spherical surface.
The prompt above was compiled from the original drawing commands and is for reference only.