Kurvenfahrt mit Sekantensteigung
Author: Dörte Haftendorn

Bewege H ausschließlich mit den Pfeiltasten!
Das schöne Fahrrad ist von Dieter Riebesehl.

m_s H=\frac{hoch}{breit}

Tangente

Sekanten-Steigungs-Funktion zu P

Bewege mit den Pfeiltasten

hat an der Stelle 
x_p eine Lücke

Ortslinie anzeigen

s = 4.9 (slider from -1 to 7, step 0.1)
Fahrradgröße = 0.4 (slider from 0.4 to 1.2, step 0.1)
f(x) = (-0.1 * (x - 3)^(3)) + (0.8 * (x - 3)) + 2
P = Point(f)
a = Tangent(P, f)
c = OrthogonalLine(P, a)
e = Circle(P, (0.5 * Fahrradgröße))
C, D = Intersect(e, c)
M = If(y(D) > y(P), D, C)
nx(x) = x - ((0.5 * Fahrradgröße) * f'(x) / sqrt(1 + (f'(x))^(2)))
ny(x) = f(x) + (0.5 * Fahrradgröße / sqrt(1 + (f'(x))^(2)))
P_1 = Root(sqrt((nx(x) - x(M))^(2) + (ny(x) - y(M))^(2)) - (1.3 * Fahrradgröße), x(P), x(P) + (2.5 * Fahrradgröße))
B: (x(P_1), f(x(P_1)))
g = Circle(B, (0.5 * Fahrradgröße))
b = Tangent(B, f)
d = OrthogonalLine(B, b)
E, F = Intersect(g, d)
N = If(y(F) > y(B), F, E)
G = Midpoint(M, N)
G' = Rotate(G, 59.99999999999999°, M)
l = Segment(G', M)
m = Line(G, l)
i = Segment(M, G)
n = Line(G', i)
H_2 = Intersect(m, n)
a_1 = Ray(G, H_2)
h_4 = Circle(M, P)
k = Circle(N, B)
α = Angle(G, M, G')
p = Segment(G', H_2)
r = Segment(H_2, N)
b_1 = Ray(G, G')
f_1(x) = sqrt((nx(x) - x(M))^(2) + (ny(x) - y(M))^(2)) - (1.3 * Fahrradgröße)
s_f = Circle(G, (0.8 * Fahrradgröße))
I = Intersect(s_f, b_1)
J = Intersect(s_f, a_1)
j = Segment(J, G)
q = Line(J, p)
c_1 = Circle(J, (0.2 * Fahrradgröße))
K, L = Intersect(c_1, q)
d_1 = Segment(K, L)
e_1 = Circle(M, (0.1 * Fahrradgröße))
g_1 = Circle(G, (0.15 * Fahrradgröße))
h_1 = Ray(G, M)
k_1 = Circle(G, (1.95 * Fahrradgröße))
O = Intersect(k_1, h_1)
i_1, j_1 = Tangent(O, g_1)
Q, R = Intersect(e_1, j_1)
S, T = Intersect(e_1, i_1)
U = Intersect(g_1, i_1)
V = Intersect(g_1, j_1)
l_1 = Segment(Q, V)
m_1 = Segment(S, U)
H' = Rotate(H_2, 90°, N)
H'_1 = Rotate(H_2, 260°, N)
n_1 = Ray(N, H')
p_1 = Ray(N, H'_1)
q_1 = Circle(N, (0.53 * Fahrradgröße))
W = Intersect(q_1, n_1)
Z = Intersect(q_1, p_1)
r_1 = CircleArc(N, Z, W)
G'' = Rotate(G', 130°, M)
β = Angle(G', M, G'')
G''_1 = Rotate(G', 280°, M)
s_1 = Ray(M, G'')
t_1 = Ray(M, G''_1)
c_2 = Circle(M, (0.53 * Fahrradgröße))
A_1 = Intersect(c_2, s_1)
B_1 = Intersect(c_2, t_1)
d_2 = CircleArc(M, B_1, A_1)
G''_2 = Rotate(G', (-4 * x(P)), G)
γ = Angle(G', G, G''_2)
a_2 = Line(G''_2, G)
e_2 = Circle(G, (0.2 * Fahrradgröße))
C_1, D_1 = Intersect(e_2, a_2)
b_2 = Segment(D_1, C_1)
f_2 = Line(C_1, i)
g_2 = Line(D_1, i)
h_2 = Circle(C_1, (0.05 * Fahrradgröße))
E_1, F_1 = Intersect(h_2, f_2)
i_2 = Segment(E_1, F_1)
k_2 = Circle(D_1, (0.05 * Fahrradgröße))
G_1, H_1 = Intersect(k_2, g_2)
j_2 = Segment(G_1, H_1)
p_2(x) = 3 - (x - 6)^(2) / 12 - (x - 6)^(3) / 54 + (2 * sin(x))
m_2 = OrthogonalLine(P, xAxis)
P_x = Intersect(m_2, xAxis)
n_2 = Segment(P, P_x)
H: (s, f(s))
sek = Line(P, H)
a_3 = OrthogonalLine(H, xAxis)
b_3 = OrthogonalLine(P, a_3)
J_1 = Intersect(a_3, b_3)
poly1, breit, hoch, j_3 = Polygon(P, J_1, H)
f_3(x) = f'(x)
m_sH: (x(H), (y(H) - y(P)) / (x(H) - x(P)))
h = Tangent(P, f)
o = false
Ortslinie1 = Locus(m_sH, s)
A = (8, 1)
I_1 = (8.826133332100621, 1)
t = true