Pursuit Curves: Dynamic Multi-Target Tracking Geometry

Pursuit Curves: Dynamic Multi-Target Tracking Geometry
Loading the math board and drawing, please wait…
2020-01-10 23:03
①This example demonstrates the classic 'pursuit curves' phenomenon: multiple pursuers (e.g., points B, C) chase their targets along vectors or straight lines, generating curved trajectories. ②Core mathematical concepts include vectors, parametric equations, loci, sequences, and polygon construction, touching on differential geometry of pursuit curves and iterative approximation. ③Construction highlights: from the summary, GeoGebra commands such as Vector, If, Segment, Sequence, Polygon, and Join are used, with objects including points (A, B, C, D, E, F), vectors (u, n), parameters (tmax, dd, ee, ff), and tracking objects (Trace, mice, L1-L7). Sliders or parameters control time steps to animate the pursuit paths. ④Suitable for high school to undergraduate mathematics teaching, for visualizing vector motion, parametric curves, and iterative approximation, and useful in mathematical modeling or competition extensions.

GeoGebra Commands & Parameters

  1. Vector((1, 0)) → u
  2. If(n ≟ 3, 26, If[n ≟ 4, 46, If[n ≟ 5, 60, 73]]) → tmax
  3. Segment(A, B) → c
  4. Sequence(s, s, 0, 6.28, 0.06283185307179587) → L1
  5. Sequence((x(O) + ((Zoom * cos(Element[L1, i] + 3.142 / 2)) * ℯ^((b * Element[L1, i]))), y(O) + ((Zoom * sin(Element[L1, i] + 3.142 / 2)) * ℯ^((b * Element[L1, i])))), i, 1, mice) → L2
  6. Sequence(Rotate[Element[L2, i], (2 * 3.14 / n), O], i, 1, Length[L2]) → L3
  7. Sequence(Sequence[Rotate[Element[L2, i], ((k * 2) * 3.14 / n), O], i, 1, Length[L2]], k, 1, n) → L4
  8. Sequence(Rotate[Element[L2, 1], ((k * 2) * 3.14 / n), O], k, 1, n + 1) → L5
  9. Sequence(Segment[Element[L5, i], Element[L5, i + 1]], i, 1, n) → L6
  10. Sequence(Rotate[Element[L2, Length[L2]], ((k * 2) * 3.14 / n), O], k, 1, n) → L7
  11. Sequence((x(C) + ((Zoom * cos(Element[L1, i] + 3.142 / 2)) * ℯ^((cc * Element[L1, i]))), y(C) + ((Zoom * sin(Element[L1, i] + 3.142 / 2)) * ℯ^((cc * Element[L1, i])))), i, 1, mice) → L2C
  12. Sequence(Rotate[Element[L2C, 1], ((k * 2) * 3.14 / 3), C], k, 1, 4) → L5C
  13. Sequence(Segment[Element[L5C, i], Element[L5C, i + 1]], i, 1, 3) → L6C
  14. Sequence(Sequence[Rotate[Element[L2C, i], ((k * 2) * 3.14 / 3), C], i, 1, Length[L2C]], k, 1, 3) → L4C
  15. Sequence((x(D) + ((Zoom * cos(Element[L1, i] + 3.142 / 2)) * ℯ^((dd * Element[L1, i]))), y(D) + ((Zoom * sin(Element[L1, i] + 3.142 / 2)) * ℯ^((dd * Element[L1, i])))), i, 1, mice) → L2D
  16. Sequence(Rotate[Element[L2D, i], 1.5708, D], i, 1, Length[L2D]) → L3D
  17. Sequence(Sequence[Rotate[Element[L3D, i], ((k * 2) * 3.14 / 4), D], i, 1, Length[L3D]], k, 1, 4) → L4D
  18. Sequence(Rotate[Element[L3D, 1], ((k * 2) * 3.14 / 4), D], k, 1, 5) → L5D
  19. Sequence(Segment[Element[L5D, i], Element[L5D, i + 1]], i, 1, 4) → L6D
  20. Sequence((x(E) + ((Zoom * cos(Element[L1, i] + 3.142 / 2)) * ℯ^((ee * Element[L1, i]))), y(E) + ((Zoom * sin(Element[L1, i] + 3.142 / 2)) * ℯ^((ee * Element[L1, i])))), i, 1, mice) → L2E
  21. Sequence(Rotate[Element[L2E, i], 1.2566370614359172, E], i, 1, Length[L2E]) → L3E
  22. Sequence(Sequence[Rotate[Element[L3E, i], ((k * 2) * 3.14 / 5), E], i, 1, Length[L3E]], k, 1, 5) → L4E
  23. Sequence(Rotate[Element[L3E, 1], ((k * 2) * 3.14 / 5), E], k, 1, 6) → L5E
  24. Sequence(Segment[Element[L5E, i], Element[L5E, i + 1]], i, 1, 5) → L6E
  25. Sequence((x(F) + ((Zoom * cos(Element[L1, i] + 3.142 / 2)) * ℯ^((ff * Element[L1, i]))), y(F) + ((Zoom * sin(Element[L1, i] + 3.142 / 2)) * ℯ^((ff * Element[L1, i])))), i, 1, mice) → L2F
  26. Sequence(Rotate[Element[L2F, i], 1.0471975511965976, F], i, 1, Length[L2F]) → L3F
  27. Sequence(Sequence[Rotate[Element[L3F, i], ((k * 2) * 3.14 / 6), F], i, 1, Length[L3F]], k, 1, 6) → L4F
  28. Sequence(Rotate[Element[L3F, 1], ((k * 2) * 3.14 / 6), F], k, 1, 7) → L5F
  29. Sequence(Segment[Element[L5F, i], Element[L5F, i + 1]], i, 1, 6) → L6F
  30. Sequence(Segment[Element[L2C, i], Element[L2C, i + 1]], i, 1, Length[L2C]) → L2CC
  31. Polygon(L5) → poly1
  32. Polygon(L5C) → poly2
  33. Polygon(L5E) → poly3
  34. Polygon(L5D) → poly4
  35. Polygon(L5F) → poly5
  36. Join(L4C) → list1
  37. Sequence(Segment[Element[L2C, i], Element[L2C, i + 1]], i, 1, Length[L2C]) → Seg2
  38. Sequence(Sequence[Rotate[Element[Seg2, i], ((k * 2) * 3.14 / 3), C], i, 1, Length[Seg2]], k, 1, 3) → L4Cu
  39. Sequence(Segment[Element[L2D, i], Element[L2D, i + 1]], i, 1, Length[L2D]) → Seg3
  40. Sequence(Sequence[Rotate[Element[Seg3, i], ((k * 2) * 3.14 / 4), D], i, 1, Length[Seg3]], k, 1, 4) → L4Du
  41. Sequence(Segment[Element[L2E, i], Element[L2E, i + 1]], i, 1, Length[L2E]) → Seg4
  42. Sequence(Sequence[Rotate[Element[Seg4, i], ((k * 2) * 3.14 / 5), E], i, 1, Length[Seg4]], k, 1, 5) → L4Eu
  43. Sequence(Segment[Element[L2F, i], Element[L2F, i + 1]], i, 1, Length[L2F]) → Seg5
  44. Sequence(Sequence[Rotate[Element[Seg5, i], ((k * 2) * 3.14 / 6), F], i, 1, Length[Seg5]], k, 1, 6) → L4Fu
  45. Sequence(Segment[Element[L2, i], Element[L2, i + 1]], i, 1, Length[L2]) → Seg6
  46. Sequence(Sequence[Rotate[Element[Seg6, i], ((k * 2) * 3.14 / n), O], i, 1, Length[Seg6]], k, 1, n) → L4u

AI Drawing Prompt Reference

Draw a dynamic multi-target pursuit geometry: multiple pursuers move along logarithmic spiral curves from a central origin, with each curve controlled by rotation angles and scaling factors. The figure includes several regular polygons (triangle, quadrilateral, pentagon, hexagon) whose vertices are connected by endpoints of rotated spiral curves. All curves rotate symmetrically around the center or their own vertices, forming nested spiral trajectories. The overall structure is radial and symmetric, with curves extending outward from the center and clear polygon boundaries, illustrating vector motion and iterative approximation of parametric curves.
The prompt above was compiled from the original drawing commands and is for reference only.