Pursuit Curves on a Cube
Loading the math board and drawing, please wait…
This example demonstrates the dynamic generation of pursuit curves on the surface of a cube in 3D space. A pursuit curve is the path traced by a point (the pursuer) that always moves directly toward another moving point (the target), and here the classic 2D pursuit problem is extended to the edges and faces of a cube. Core mathematical concepts include vectors, midpoints, polygons, sequence iteration, rotation, and the limit/integral ideas from calculus, with iterative approximation of the pursuit path. Construction highlights: using GeoGebra commands such as Vector, Midpoint, Polygon, Sequence, Line, Rotate, Point, and Cube to build the cube framework, and employing an Iteration object to progressively generate the pursuer point sequence, resulting in multiple curves (L1 through L9). Suitable for high school to university students, this example helps understand spatial geometry, vector operations, iterative algorithms, and limit concepts, and can serve as a teaching demonstration for mathematical modeling or computer graphics.
GeoGebra Commands & Parameters
Vector((1, 0)) → uMidpoint(A, C) → OPolygon(A, B, C, D) → poly1, a, b, c, dSequence(Rotate[Dilate[A, r^(n), O], (n * α), O], n, 1, Iteration) → L2Sequence(Rotate[Dilate[B, r^(n), O], (n * α), O], n, 1, Iteration) → L3Sequence(Rotate[Dilate[C, r^(n), O], (n * α), O], n, 1, Iteration) → L4Sequence(Rotate[Dilate[D, r^(n), O], (n * α), O], n, 1, Iteration) → L5Vector((0, 1)) → vSequence(Segment[Rotate[Dilate[A, r^(n - 1), O], ((n - 1) * α), O], Rotate[Dilate[A + (Pas * u), r^(n - 1), O], ((n - 1) * α), O]], n, 1, Iteration) → L6Sequence(Segment[Rotate[Dilate[B, r^(n - 1), O], ((n - 1) * α), O], Rotate[Dilate[B + (Pas * v), r^(n - 1), O], ((n - 1) * α), O]], n, 1, Iteration) → L7Sequence(Segment[Rotate[Dilate[C, r^(n - 1), O], ((n - 1) * α), O], Rotate[Dilate[C - (Pas * u), r^(n - 1), O], ((n - 1) * α), O]], n, 1, Iteration) → L8Sequence(Segment[Rotate[Dilate[D, r^(n - 1), O], ((n - 1) * α), O], Rotate[Dilate[D - (Pas * v), r^(n - 1), O], ((n - 1) * α), O]], n, 1, Iteration) → L9Sequence(Polygon[Rotate[Dilate[A, r^(n), O], (n * α), O], Rotate[Dilate[B, r^(n), O], (n * α), O], Rotate[Dilate[C, r^(n), O], (n * α), O], Rotate[Dilate[D, r^(n), O], (n * α), O]], n, 1, Iteration, 2) → L1Sequence(Polygon[Element[L4, i], Element[L5, i], Element[L5, i + 1], Element[L4, i]], i, 1, Length[L4], 2) → liste1Sequence(Polygon[Element[L5, i], Element[L2, i], Element[L2, i + 1], Element[L5, i]], i, 1, Length[L4], 2) → liste2Sequence(Polygon[Element[L2, i], Element[L3, i], Element[L3, i + 1], Element[L2, i]], i, 1, Length[L2], 2) → liste3Sequence(Polygon[Element[L3, i], Element[L4, i], Element[L4, i + 1], Element[L3, i]], i, 1, Length[L4], 2) → liste4Line(A, B) → fRotate(liste1, 90°, f) → liste1'Rotate(liste2, 90°, f) → liste2'Rotate(liste3, 90°, f) → liste3'Rotate(liste4, 90°, f) → liste4'Midpoint(A, C) → ELine(E, zAxis) → gSequence(Rotate[liste1', i, g], i, 0, (2 * π), (2 * π / 4)) → l1Sequence(Rotate[liste2', i, g], i, 0, (2 * π), (2 * π / 4)) → l2Sequence(Rotate[liste3', i, g], i, 0, (2 * π), (2 * π / 4)) → l3Sequence(Rotate[liste4', i, g], i, 0, (2 * π), (2 * π / 4)) → l4Point(Circle[B, Distance[A, B], Segment[A, B]]) → FCube(A, B, F) → e, G, faceFGKJ, faceHIJK, arêteAG, arêteAB, arêteBF, arêteFG, arêteAH, arêteGK, arêteHK, arêteHI, H, arêteBI, arêteIJ, arêteFJ, arêteJK, I, J, K, faceABFG, faceAGKH, faceABIH, faceBFJILine(H, I) → hRotate(liste1', 90°, h) → liste1''Rotate(liste2', 90°, h) → liste2''Rotate(liste3', 90°, h) → liste3''Rotate(liste4', 90°, h) → liste4''
AI Drawing Prompt Reference
Draw a cube and generate pursuit curves on its surface. First, create a cube framework, then generate pursuit paths on each face, consisting of a sequence of points where each point moves towards a target point. Use rotation and iteration to generate multiple pursuit curves, ultimately displaying these curves on the cube's faces.
The prompt above was compiled from the original drawing commands and is for reference only.