Free fall with horizontal v₀
This activity belongs to the GeoGebra book The Domain of the Time.
This animation simulates free fall motion in real time, neglecting air resistance, with an initial horizontal velocity. The animation does not use formulas (neither equations nor differential calculus) and only makes the necessary variations in the vectors that direct the motion.
This animation follows the same steps as the previous activity, but now the velocity vector v can have a non-zero initial value vx in the horizontal direction. This initial horizontal velocity (which can be negative, i.e., to the left instead of to the right) converts the straight-line motion into parabolic motion. In other words, we can consider free fall with horizontal initial velocity as a combination of Uniform Rectilinear Motion in the horizontal direction and Free fall.
As you can observe, the result fits quite well with reality. The green marks represent the height reached by the blue point at each second, according to the animation. The orange marks indicate the theoretical height at which that point should be at the end of each second. You can activate the "Show Theoretical Arc" checkbox to display the graph of the corresponding parabolic arc.
Note that, in the absence of friction, the horizontal component of the velocity vector remains constant, equal to the initial horizontal velocity. Consequently, the x-coordinate that the mass will reach upon hitting the X-axis will be the same as if it had not fallen and continued in uniform straight-line motion. This means it will equal the x-coordinate of the initial position plus vx T, where T is the time of the fall.
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 passing through an integer number of seconds and the corresponding height
SetValue(last, reg(1))
SetValue(reg, If(floor(t) > last, Append(floor(t), reg), reg))
SetValue(mark, If(floor(t) > last, Append(y(M), mark), mark))
# Move M
SetValue(v, v + dt g)
SetValue(M, If(y(M + dt v) > 0, M + dt v, Intersect(Line(M, M + v), xAxis)))
StartAnimation(anima, y(M) > 0)
Author of the activity and GeoGebra construction: Rafael Losada.