Difference between revisions of "DynamicCoordinates Command"
From GeoGebra Manual
m |
m |
||
Line 4: | Line 4: | ||
{{Example|1=<div> | {{Example|1=<div> | ||
− | *Let ''A'' be a point and <code>B = DynamicCoordinates[A, round(x(A)), round(y(A))]</code>. When you try to move ''B'' to (1.3, 2.1) using the [[File:Mode move.svg|link=|20px]] [[Move Tool]], point ''A'' becomes (1.3, 2.1) and ''B'' appears at (1,2). | + | *Let ''A'' be a point and <code>B = DynamicCoordinates[A, round(x(A)), round(y(A))]</code>. When you try to move ''B'' to (1.3, 2.1) using the [[File:Mode move.svg|link=|20px]][[Move Tool]], point ''A'' becomes (1.3, 2.1) and ''B'' appears at (1,2). |
*<code>B = DynamicCoordinates[A, x(A), min(y(A), sin(x(A)))]</code> creates a point under sin(x). | *<code>B = DynamicCoordinates[A, x(A), min(y(A), sin(x(A)))]</code> creates a point under sin(x). | ||
:{{note|1=<code>PointIn[y < sin(x)]</code> is the easier solution in this case.}} | :{{note|1=<code>PointIn[y < sin(x)]</code> is the easier solution in this case.}} |
Revision as of 15:32, 9 October 2015
- 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 and dragging is done with the mouse. At least one of X and Y should depend on A.
Example:
- Let A be a point and
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 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]
andB = Point[xAxis]
.
- Now type in the Input Bar:
DynamicCoordinates[B, Min[x(B), x(A)], 0]
and press EnterSetVisibleInView[B, 1, false]
and press EnterSetLayer[C, 1]
and press Enter- 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 EnterB = 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 Enter
- This example makes A a sticky point when a point C is dragged near it. Define
A = (1, 2)
andB = (2, 3)
.
- Now, type in the Input Bar:
SetVisibleInView[B, 1, false]
and press EnterC = DynamicCoordinates[B, If[Distance[A, B] < 1, x(A), x(B)], If[Distance[A, B] < 1, y(A), y(B)]]
.