Difference between revisions of "DynamicCoordinates Command"

From GeoGebra Manual
Jump to: navigation, search
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=|24px]] [[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 11:43, 4 August 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 Mode move.svg 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] and B = Point[xAxis].
Now type in the Input Bar:
DynamicCoordinates[B, Min[x(B), x(A)], 0] and press Enter
SetVisibleInView[B, 1, false] and press Enter
SetLayer[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 Enter
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 Enter
  • 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 Enter
C = DynamicCoordinates[B, If[Distance[A, B] < 1, x(A), x(B)], If[Distance[A, B] < 1, y(A), y(B)]].
© 2024 International GeoGebra Institute