DynamicCoordinates Command
From GeoGebra Manual
- DynamicCoordinates[ Point A, Number X, Number Y ]
- Creates a point with coords (X, Y). This point is dependent, but can be moved. Whenever you try to move the new point to coordinates (x,y), point A is moved there and coordinates for the new point are calculated. Works best if point A is not visible. At least one of X and Y should depend on A.
Example:
B=DynamicCoordinates[A,round(x(A)),round(y(A))]
. When you try to move B to (1.3,2.1) using the Move Tool, point A becomes (1.3,2.1) and B appears at (1,2).B=DynamicCoordinates[A,x(A),min(y(A),sin(x(A)))]
creates a point under under sin(x).
- Note: PointIn[y<sin(x)] is the easier solution in this case.
- The following examples show other ways to restrain the positions of a point C: let A=Point[xAxis] and B=Point[xAxis]. Now type in the Input bar:
DynamicCoordinates[B, Min[x(B),x(A)],0]
, and press the Enter key,SetVisibleInView[B, 1, false]
, and press the Enter key,SetLayer[C, 1]
, and press the Enter key. Now, C cannot be moved to the right of A. - Define A=(1,2). Now, type in the Input bar:
SetVisibleInView[A, 1, false]
and press the Enter key,B=DynamicCoordinates[A, If[x(A) > 3, 3, If[x(A) < -(3), -3, If[x(A)< 0, round(x(A)), x(A)]]], If[x(A) < 0, 0.5, If[y(A) > 2, 2, If[y(A) <0, 0, y(A)]]]]
, and press the Enter key. - This example makes A a sticky point when a point C is dragged near it. Define A=(1,2) and B=(2,3). Now, type in the Input bar:
SetVisibleInView[B, 1, false]
and press the Enter key,C=DynamicCoordinates[B, If[Distance[A, B] < 1, x(A), x(B)], If[Distance[A, B] < 1, y(A), y(B)]]
.