三维空间中三个动点在球面上诱导出八个几何中位数的示例三
几何画板及绘图内容加载中,请稍等……
该范例演示了三维空间中三个移动点如何在球面上诱导出八个几何中位数(geometric medians)的动态几何现象。核心数学概念涉及几何中位数(使到各点距离之和最小的点)、球面几何、空间点的动态变化以及最优化问题。作图要点包括:使用GeoGebra的Polygon、PointIn、Sphere、Circle、Angle、Zip、Sum、PolyLine、Flatten、Length、Textfield、If、KeepIf、Function、Max、Sequence、CurveCartesian、TableText、Vector、Translate、RotateText等命令,构建了多个点对象(如B01至B10、P1至P10等)以及参数R、t0等,通过滑块或动态输入控制点的移动,实时计算并显示球面上的八个几何中位数位置。适合高中至大学阶段的数学教学,尤其适用于立体几何、最优化理论和动态几何可视化学习,帮助学生直观理解高维空间中距离最小化问题的几何意义。
GeoGebra 命令及参数
Polygon({((-π), ((-π)) / 2), ((-π), π / 2), (π, π / 2), (π, ((-π)) / 2)}) → qPolygon({B01, B02, B04, B03}) → q2PointIn(q2) → B10PointIn(q2) → B9PointIn(q2) → B8PointIn(q2) → B7PointIn(q2) → B6PointIn(q2) → B5PointIn(q2) → B4PointIn(q2) → B3PointIn(q2) → B2PointIn(q2) → B1First({P1, P2, P3, P4, P5, P6, P7, P8, P9, P10}, n) → lPSphere(O, R) → bPointIn(q) → A_2Circle(O, R, xOyPlane) → cPointIn(q) → RZ1_2PointIn(q) → RZ2_2Angle(sumunitA, vA) → αAAngle(sumunitZ1, vZ1) → αZ1Angle(sumunitZ2, vZ2) → αZ2Zip(Segment[A, p], p, lP) → segSum(seg) → sum_segPolyLine({((-π), ((-π)) / 2), ((-π), π / 2), (π, π / 2), (π, ((-π)) / 2), ((-π), ((-π)) / 2)}) → q1Flatten(Sequence[Sequence[((-π) + ((2 * π / na) * i), ((-π)) / 2 + (π / na * j)), j, 1, na - 1], i, 1, na - 1]) → ltest_2Zip((R; x(a); y(a)), a, ltest_2) → ltest_3Length(lZmax') → lälZmax'Zip(Vector[(R * UnitVector[a])], a, lZmax') → vlZmaxZip(Vector[(R * UnitVector[a])], a, lZmin') → vlZminZip(Vector[(R * UnitVector[Sum[Zip[UnitVector[p - b], p, lP]]])], b, lZmax') → sumunit_maxZip(Vector[(R * UnitVector[Sum[Zip[UnitVector[p - b], p, lP]]])], b, lZmin') → sumunit_minZip(Angle[a, Vector[b]], Vector[a], sumunit_max, Vector[b], vlZmax) → αmaxZip(Angle[a, Vector[b]], Vector[a], sumunit_min, Vector[b], vlZmin) → αminZip((arg(a), alt(a)), a, lP) → lP_2Textfield(n) → InputBox11Zip(Vector[(R * UnitVector[a])], a, lZsad') → vlZsadIf(αZ1 > 100°, 180° - αZ1, αZ1) → αZ1'KeepIf(x > 0, Sequence[If[abs(Element[αsad, i] - π) < 0.001 ∨ abs(Element[αsad, i]) < 0.001, i, 0], i, 1, Length[αsad]]) → NαsadTextfield(m_2) → InputBox14PointIn(q) → RZ3_2Sum(Zip[1 / Length[p - Z3], p, lP]) → ZahZ3Angle(sumunitZ3, vZ3) → αZ3Textfield(R) → InputBox1Textfield(na) → InputBox2Function((q_f * f(u, v)) + b_0f - 0.9999, u, (-π), π, v, ((-π)) / 2, π / 2) → f0Max(f(Zmax_2)) → mZip((x(a), y(a), f0(a)), a, Zmax_2) → fmax3DZip((x(a), y(a), f0(a)), a, Zmin_2) → fmin3DZip((x(a), y(a), f0(a)), a, Zsad_2) → fsad3DSequence(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_sad1Sequence(Vector[(1.3 * Point[O, Vector[Element[vlZmax, i]]]), (1.5 * Point[O, Vector[Element[vlZmax, i]]])], i, 1, Length[vlZmax]) → vsumunit_max2Sequence(Vector[(1.3 * vlZmax(i)), (1.5 * vlZmax(i))], i, 1, Length[vlZmax]) → lvlmaxSequence(Vector[(1.3 * vlZmax(i)), (-1.1 * sumunit_max(i))], i, 1, Length[sumunit_max]) → l1zSequence(Vector[(1.3 * vlZmin(i)), (1.5 * vlZmin(i))], i, 1, Length[vlZmin]) → lvlminSequence(Vector[(1.3 * vlZmin(i)), (-1.1 * sumunit_min(i))], i, 1, Length[sumunit_min]) → l2zSequence(Vector[(1.3 * vlZsad(i)), (1.5 * vlZsad(i))], i, 1, Length[vlZsad]) → lvlsadSequence(Vector[(1.3 * vlZsad(i)), (-1.1 * sumunit_sad(i))], i, 1, Length[sumunit_sad]) → l3zZip((Length[a]; arg(a); alt(a)), a, lP) → lPsphereCurveCartesian((-π) + ((2 * π) * a), ((-π)) / 2, f0((-π) + ((2 * π) * a), ((-π)) / 2), a, 0, 1) → par1CurveCartesian((-π) + ((2 * π) * a), π / 2, f0((-π) + ((2 * π) * a), π / 2), a, 0, 1) → par2CurveCartesian(π, ((-π)) / 2 + (π * a), f0(π, ((-π)) / 2 + (π * a)), a, 0, 1) → par4Zip(Text["d_{" + (a) + "}", (A + Element[lP, a]) / 2], a, 1…n) → lPtxtCurveCartesian((-π), ((-π)) / 2 + (π * a), f0((-π), ((-π)) / 2 + (π * a)), a, 0, 1) → par3Zip((x(a), y(a)), a, lP) → lP_{Gr1}Textfield(q_f) → InputBox3Textfield(b_0f) → InputBox4Textfield(step1) → InputBox5Textfield(step2) → InputBox6TableText(Append["i", Sequence[Length[αmax]]], Append["P_{Max }", lZmax'], Append["(f'x,f'y)", lZf'xymax], Append[" Δα≟ π ", αmax], "v") → text2aTableText(Append["i", Sequence[Length[αmin]]], Append["P_{Min }", lZmin'], Append["(f'x,f'y)", lZf'xymin], Append[" Δα≟ π ", αmin], "v") → text2bTableText(Append["i", Sequence[Length[αsad]]], Append["P_{sad }", lZsad'], Append["(f'x,f'y)", lZf'xysad], Append[" Δα≟ π ", αsad], "v") → text2cFirst({aP1, aP2, aP3, aP4, aP5, aP6, aP7, aP8, aP9, aP10}, n) → OutputVector((1.3 * A), (1.5 * A)) → lvAVector((1.3 * A), (1.1 / 1.7 * Point[O, Vector[(-sumunitA)]])) → l1AZip(Segment[F_o, p], p, lP) → seg0Sum(seg0) → sum_seg0Translate(q, Vector[(0, 0, -1)]) → q'Zip(Segment[(x(a), y(a), -1), (x(a), y(a), f0(x(a), y(a)))], a, {((-π), ((-π)) / 2), ((-π), π / 2), (π, π / 2), (π, ((-π)) / 2)}) → lsegRotateText(txt, 90°) → txt1
AI 绘图提示语参考
在三维空间中,绘制一个球体,其球心位于原点,半径为可调参数。球面上分布着八个几何中位数点,这些点由三个在空间中移动的点共同诱导产生。球体内部有一个由四个顶点构成的多边形,其内部随机生成十个点,这些点作为移动点的初始位置。球面上还绘制了一个大圆,以及多个从球心指向球面点的向量。通过动态滑块控制移动点的位置,实时计算并显示八个几何中位数在球面上的位置,同时用颜色或标记区分不同区域。图形还包含多个角度标注和文本输入框,用于调整参数和观察变化。
以上提示语为根据原始绘图命令整理而来,仅供参考。