Google Classroom
GeoGebraGeoGebra Classroom

UCM with polar coordinates

This activity belongs to the GeoGebra book The Domain of the Time. In the previous activity, the slider anima moved point M using the instruction:  SetValue(M, Rotate(M, dt ω, O)) Instead of using the Rotate command, we can use polar coordinates. Let's see how. In the Cartesian coordinates of a point P(x, y), the coordinates x and y represent, respectively, the distances (with their signs) horizontally and vertically from point P to the origin O. In polar coordinates P(r ; α), r corresponds to the length of the segment OP and α corresponds to the angle, between 0º and 360º, that segment OP makes with the X-axis. Note that, to avoid confusion, we use a semicolon to separate the polar coordinates instead of a comma. For example, the point P(0, −3) is equal to P(3; 270°). Para obtener las coordenadas cartesianas de un punto P, GeoGebra usa x(P) e y(P). Para obtener sus coordenadas polares, GeoGebra usa abs(P) y arg(P). To obtain the Cartesian coordinates of point P, GeoGebra uses x(P) and y(P). To obtain its polar coordinates, GeoGebra uses abs(P) and arg(P).
  • Note: In reality, arg(P) returns an angle between −180º and 180º, with negative values corresponding to angles greater than 180º.
Polar coordinates are especially useful in rotational motions since point P(r ; α), when varying α, describes a circle centered at the origin with radius r. So, if in the UCM of the previous activity, with constant angular velocity ω, O is the origin of coordinates, then point M has polar coordinates (r ; t ω), allowing us to move M with the instruction: SetValue(M, (r ; t ω)) The angle that M forms with the origin is obtained with arg(M). If we want to generalize to the case where O is not the origin, we just need to add its coordinates: SetValue(M, O + (r ; t ω)) In that case, the angle that M forms with the origin of coordinates is obtained with arg(M-O). After the construction, you can see how the script of the slider anima looks.
SCRIPT FOR SLIDER anima # Calculate the elapsed seconds dt; add one second if t1(1) < tt SetValue(tt, t1(1)) SetValue(t1, First(GetTime(), 3)) SetValue(dt, (t1(1) < tt) + (t1(1) − tt)/1000) # Register the lap time and the number of laps completed SetValue(reg, If(arg(M − O) < 0 ∧ arg(M − O) + dt ω ≥ 0, Append(t, reg), reg)) SetValue(laps, If(arg(M − O) < 0 ∧ arg(M − O) + dt ω ≥ 0, laps+ 1, laps)) # Move M SetValue(M, O + (r; t ω)) Author of the activity and GeoGebra construction: Rafael Losada.