Author: Daniel Mentrard

Open

Close

r = 1.7 (slider from 0 to R, step 0.1)
h = 4.6 (slider from 0 to 5, step 0.1)
R = 3.8 (slider from 1 to 5, step 0.1)
hh: sqrt(h^(2) + (R - r)^(2))
O = (11.079933229886995, 2.4127065727558477)
Zoom = 1 (slider from 0.1 to 5, step 0.1)
View3D = (-4.190656462573065, 2.337850740930063)
ya: y(View3D)
costheta: cos(ya)
sintheta: sin(ya)
xa: x(View3D)
cosphi: cos(xa)
xy: -Zoom * cosphi * sintheta
sinphi: sin(xa)
B_1 = (-4.871164024625651, -2.765955974464337)
X: (x(B_1) + Zoom * sinphi, y(B_1) + xy)
u = Vector(B_1, X)
Z: (x(B_1) + Zoom * cosphi, y(B_1) + Zoom * sinphi * sintheta)
w = Vector(B_1, Z)
Y: (x(B_1), y(B_1) + Zoom * costheta)
v = Vector(B_1, Y)
B: O + R * u - R * v
B' = Mirror(B, O)
A: O + R * u + R * v
A' = Mirror(A, O)
poly1, a', b_1, a, b' = Polygon(A', B, A, B')
L = Midpoint(b')
α = 0.9424777799999999 (slider from 0 to alpha, step 0.15707963)
S: L - hh * cos(α) * u + hh * sin(α) * w
I: S - r * v
I' = Mirror(I, S)
WW: I' + 2 * r * u
W: I' - u * 2 * r * cos(2 * α) + 2 * r * w * sin(2 * α)
PP = If(α ≤ 1.57, W, WW)
C_1: I - 2 * r * u * cos(2 * α) + 2 * r * w * sin(2 * α)
CC: I + 2 * r * u
MM = If(α ≤ 1.57, C_1, CC)
H = Midpoint(b_1)
alpha: π - atan(h / (R - r))
betta: alpha * 180 / 3.141592653589793
g = 1 (slider from -5 to 5, step 0.1)
a_1 = OrthogonalLine(View3D, yAxis)
b = OrthogonalLine(View3D, xAxis)
c: cos(ya)
n = 0.4 (slider from 0.01 to 1, step 0.01)
nn = 0.42 (slider from 0 to 1, step 0.01)
liste1 = Sequence(CurveCartesian[x(O + R * cos(i) * cos(j) * u + R * sin(i) * cos(j) * v + R * sin(j) * w), y(O + R * cos(i) * cos(j) * u + R * sin(i) * cos(j) * v + R * sin(j) * w), i, 0, 6.28319], j, -1.5708, 1.5708, n)
C: O + h * w
D: O + r * u - r * v
E: O + r * u + r * v
D'_1 = Mirror(D, O)
E'_1 = Mirror(E, O)
poly2, e', d, e, d' = Polygon(E'_1, D, E, D'_1)
z = Vector(O, C)
F: C + r * u + r * v
G: C + r * u - r * v
G' = Mirror(G, C)
F' = Mirror(F, C)
poly3, f', g_1, f, g' = Polygon(F', G, F, G')
aa: sqrt(r^(2) + r^(2))
J: H + hh * cos(α) * u + hh * sin(α) * w
K: J + r * v
K' = Mirror(K, J)
poly4, b_2, k', k, a_2 = Polygon(B, K', K, A)
M = Midpoint(a)
N = Midpoint(a')
P = Midpoint(a')
poly5, i', b'_1, a'_1, i = Polygon(I', B', A', I)
Q: M + hh * cos(α) * v + hh * sin(α) * w
T: N - hh * cos(α) * v + hh * sin(α) * w
U: T - r * u
U' = Mirror(U, T)
V: Q - r * u
V' = Mirror(V, Q)
poly8, l, m, p, q = Polygon(MM, I, I', PP)
poly6, a'_2, u_1, u', b_3 = Polygon(A', U, U', B)
poly7, b'_2, v_1, v', a_3 = Polygon(B', V, V', A)