Velocity field on a rigid lamina
Author: Lluís Ros

This construction visualizes the velocity field defined by a rotor on a rigid lamina. Given a rotor in axis coordinates [Vox,Voy,Omega], and a lamina defined by points A and B, the construction considers a grid of points on the lamina and plots the velocity vector of each point, and the instant center C of the field. Sliders are provided for all variables of the rotor, and for the scale and sparsity of the vector field. Click on the "play" button in the bottom-left corner of the window to "animate" the value of Omega, and see how the field and the instant center evolve. Also, move the sliders for Omega, Vox, or Voy to see the changes in the field. The construction also provides a moveable point P and its velocity Vp (not scaled), so that by moving P you can "probe" the velocity of any point in the lamina. You can use this device to see that the velocity of the origin is [Vox,Voy].

Some questions to consider: What happens with the velocity field and the instant center C when Omega approaches zero? What happens with the instant center when we vary Vox? And when we vary Voy? What is the position of the instant center in general? How is the velocity of a point P computed from [Vox,Voy,Omega]? Do you see that the velocity field induced by the rotor can be regarded as a superposition of two fields? One would be the field induced by an instantaneous rotation about the origin, at an angular speed Omega. The other field would be a constant velocity field of value [Vox,Voy].

Omega = 0.427 (slider from -1 to 1, step 0.0010)
V_{0y} = 0 (slider from -3 to 3, step 0.01)
V_{0x} = 2.98 (slider from -3 to 3, step 0.01)
x_{C}: (-V_{0y}) / Omega
y_{C}: V_{0x} / Omega
C: (x_{C}, y_{C})
A = (-11.39198562371605, -4.8225462008231945)
B = (12.60605770387899, 14.528817168732592)
D: (x(A), y(B))
E: (x(B), y(A))
Lamina, a, e, b, d = Polygon(A, E, B, D)
Sparsity = 2.71 (slider from 0.01 to 5, step 0.1)
VectorScale = 0.85 (slider from 0 to 1, step 0.01)
VelocityField = Sequence(Sequence[Vector[(i, j), (i, j) + (-j * Omega + V_{0x}, i * Omega + V_{0y}) * VectorScale], i, x(A), x(B), Sparsity], j, y(A), y(B), Sparsity)
RedCircle = Circle(C, 0.7)
P = (-0.039970030025268714, 21.88115887449087)
V_{P} = Vector(P, P + (-y(P) * Omega + V_{0x}, x(P) * Omega + V_{0y}))