Transformation: Stretch

Either drag the blue point to move the mechanism or give the "Speed" slider (if visible) a non-zero value.  Note that you may need to Right-click on the blue point and select "Animation on" to reset it if it does not respond to the "Speed" slider at first.

Basic

Circle

Locus

Polygon

Locus

A_2 = (-1.2742047749100518, 4.885796439113564)
Z_1 = (-1.4537105035315963, 4.1877186055853395)
W_1 = (-2.2541842211952545, 6.145704881747378)
V_1 = (-0.9351383986249133, 5.025412005819209)
U_1 = (-0.6253723614256166, 6.39570436810152)
T_1 = (-0.5561818604238784, 4.167773524627391)
S_1 = (0.022225487356649004, 4.546730062828426)
R_1 = (-0.12072922066077274, 6.882946021253784)
Q_1 = (-1.1648184774156223, 6.621923707065071)
P_1 = (-1.2143695320362036, 5.344533301146397)
O_1 = (-1.7129965559849367, 6.461457834791556)
N_1 = (-2.77008584675625, 6.36173243000181)
M_1 = (-2.19167849897572, 4.227608767501238)
A = Point(xAxis)
B = Point(xAxis)
a = Segment(A, B)
C = (-2.0522943456572404, 6.465310318551844)
d = 8.7 (slider from 0 to 15, step 0.1)
l = 3.4 (slider from 0.01 to d, step 0.01)
c = Circle(C, d)
D, E = Intersect(c, xAxis)
b = Ray(D, C)
e = Ray(E, C)
f = Circle(C, l)
F, G = Intersect(f, e)
H, I = Intersect(f, b)
g = Line(G, I)
h = Line(H, F)
C' = Mirror(C, g)
C'_1 = Mirror(C, h)
i = Segment(G, C')
j = Segment(C', I)
k = Segment(I, D)
m = Segment(E, G)
n = Segment(H, C'_1)
p = Segment(C'_1, F)
J = Intersect(m, p)
K = Intersect(n, k)
L = Intersect(m, i)
M = Intersect(j, k)
N = Intersect(m, xAxis)
O = Intersect(k, xAxis)
P = Intersect(k, m)
Q = Intersect(j, i)
R = Intersect(p, n)
o = true
S = (-1.4221832020581933, 4.94807612289423)
T = (0.3859580785591209, 3.491252889856586)
s = Circle(S, T)
U = Point(s)
t = Circle(U, d)
V, W = Intersect(t, xAxis)
a_1 = Ray(V, U)
b_1 = Ray(W, U)
c_1 = Circle(U, l)
Z, A_1 = Intersect(c_1, b_1)
B_1, C_1 = Intersect(c_1, a_1)
d_1 = Line(A_1, C_1)
e_1 = Line(B_1, Z)
U' = Mirror(U, d_1)
U'_1 = Mirror(U, e_1)
f_1 = Segment(U', C_1)
g_1 = Segment(U', A_1)
h_1 = Segment(A_1, W)
i_1 = Segment(C_1, V)
j_1 = Segment(B_1, U'_1)
k_1 = Segment(U'_1, Z)
D_1 = Intersect(h_1, g_1)
E_1 = Intersect(f_1, i_1)
F_1 = Intersect(h_1, k_1)
G_1 = Intersect(j_1, i_1)
H_1 = Intersect(i_1, h_1)
I_1 = Intersect(j_1, k_1)
J_1 = Intersect(g_1, f_1)
K_1 = Intersect(i_1, xAxis)
L_1 = Intersect(h_1, xAxis)
loc1 = Locus(U', U)
loc2 = Locus(U'_1, U)
Speed = 0 (slider from -10 to 10, step 0.1)
u = false
v = false
w = false
poly1, l_1, m_1, n_1, p_1, q_1, r_1, s_1, t_1, a_2, b_2, c_2, d_2, e_2 = Polygon(M_1, N_1, O_1, P_1, Q_1, R_1, S_1, T_1, U_1, V_1, A_2, W_1, Z_1)
z = false
B_2 = Point(poly1)
f_2 = Circle(B_2, d)
C_2, D_2 = Intersect(f_2, xAxis)
g_2 = Ray(C_2, B_2)
h_2 = Ray(D_2, B_2)
k_2 = Circle(B_2, l)
E_2, F_2 = Intersect(k_2, h_2)
G_2, H_2 = Intersect(k_2, g_2)
i_2 = Line(F_2, H_2)
j_2 = Line(G_2, E_2)
I_2 = Mirror(B_2, i_2)
J_2 = Mirror(B_2, j_2)
l_2 = Segment(F_2, I_2)
m_2 = Segment(H_2, I_2)
n_2 = Segment(G_2, J_2)
p_2 = Segment(J_2, E_2)
q_2 = Segment(H_2, C_2)
r_2 = Segment(D_2, F_2)
K_2 = Intersect(r_2, q_2)
L_2 = Intersect(n_2, p_2)
M_2 = Intersect(l_2, m_2)
N_2 = Intersect(r_2, l_2)
O_2 = Intersect(m_2, q_2)
P_2 = Intersect(q_2, n_2)
Q_2 = Intersect(p_2, r_2)
R_2 = Intersect(q_2, xAxis)
S_2 = Intersect(r_2, xAxis)
loc3 = Locus(I_2, B_2)
loc4 = Locus(J_2, B_2)
s_2 = Segment(B, W)
t_2 = Segment(A, V)
q = Segment(D, A)
r = Segment(B, E)
a_3 = Segment(B, D_2)
b_3 = Segment(A, C_2)