$\text{Choose the angle pair: }$

$\text{ANIMATE}$

Initial conditions

\text{Drag to change angle}

$\text{ANIMATE}$

L = (-9, 9)
K = (-2, 9)
J = (-2, 3)
I = (-9, 3)
q1, i, j, k, l = Polygon(I, J, K, L)
V = (2, -2)
transSli2 = 0 (slider from 0 to 1, step 0.1)
D: (10.6, 4)
C = (6, 4)
u = Vector(C, V)
ddMenu: {"$\text{Complementary }$", "$\text{Supplementary }$"}
choice: SelectedIndex[ddMenu] + 1
A = PointIn(q1)
c = Circle(A, 4)
B = Point(c)
s11 = Segment(A, B)
perpLine = OrthogonalLine(A, s11)
MCOM = Intersect(c, perpLine, 2)
complArc = Arc(c, B, MCOM)
MSUP = Mirror(B, A)
supplArc = Arc(c, B, MSUP)
B' = Point(If[choice ≤ 2, complArc, supplArc])
α = Angle(B, A, B')
D' = Rotate(D, If[choice ≤ 2, 90° - α, 180° - α], C)
rotSli = 0 (slider from 0 to 1, step 0.1)
E = Point(s11)
d = CircleSector(A, E, B')
speed = 3 (slider from -5 to 5)
s21 = Segment(C, D)
s12 = Segment(A, B')
β = Angle(D, C, D')
s22 = Segment(C, D')
F = Point(s21)
e = CircleSector(C, F, D')
v = Vector(A, V)
transSli1 = 0 (slider from 0 to 1, step 0.1)
e' = Translate(e, Vector[(u * transSli2)])
masterSli = 1 (slider from 1 to 4, step 0.1)
labLin1 = AngularBisector(B, A, B')
labLin2 = AngularBisector(D, C, D')
L2 = Intersect(e, labLin2)
textAlpha: "" + (LaTeX[round(α, 0)]) + ""
textBeta: "" + (LaTeX[round(β, 0)]) + ""
C' = Translate(C, u)
C'_{1} = Translate(C, u)
C'_{2} = Translate(C, Vector[(transSli2 * u)])
D'_{1} = Translate(D, Vector[(transSli2 * u)])
s21' = Segment(C'_{2}, D'_{1})
C'_{3} = Translate(C, Vector[(transSli2 * u)])
D'' = Translate(D', Vector[(transSli2 * u)])
s22' = Segment(C'_{3}, D'')
A' = Translate(A, Vector[(transSli1 * v)])
B'' = Translate(B', Vector[(transSli1 * v)])
s12' = Segment(A', B'')
A'_{1} = Translate(A, Vector[(transSli1 * v)])
B'_{1} = Translate(B, Vector[(transSli1 * v)])
s11' = Segment(A'_{1}, B'_{1})
d' = Translate(d, Vector[(transSli1 * v)])
ang = Angle(D'', V, B'_{1})
rotAng: (-ang)
d'' = Rotate(d', (rotAng * rotSli), V)
G = Rotate(A'_{1}, (rotAng * rotSli), V)
H = Rotate(B'_{1}, (rotAng * rotSli), V)
s11'' = Segment(G, H)
A'' = Rotate(A', (rotAng * rotSli), V)
B''' = Rotate(B'', (rotAng * rotSli), V)
s12'' = Segment(A'', B''')
tabOrder: {ddMenu, B', A, B, textAlpha, textBeta, btnAnim, btnRewind}
squa1, f, g, h, m, M, N = Polygon(A, E, 4)
squa2, n, p, q, r, O, P = Polygon(C, F, 4)
squa1' = Translate(squa1, Vector[(transSli1 * v)])
squa1'' = Rotate(squa1', (rotAng * rotSli), V)
squa2' = Translate(squa2, Vector[(transSli2 * u)])
squaBlack = Translate(Polygon[C, F, 4], Vector[(transSli1 * u)])
cExt = Circle(A, 4.3)
B'_{2} = Mirror(B, cExt)
sv11 = Segment(B, B'_{2})
B''_{1} = Mirror(B', cExt)
sv12 = Segment(B', B''_{1})
B'_{3} = Translate(B, Vector[(transSli1 * u)])
B''_{2} = Translate(B', Vector[(transSli1 * u)])
B''_{3} = Translate(B', Vector[(transSli1 * v)])
Q = Translate(B''_{1}, Vector[(transSli1 * v)])
sv12' = Segment(B''_{3}, Q)
B'_{4} = Translate(B, Vector[(transSli1 * v)])
R = Translate(B'_{2}, Vector[(transSli1 * v)])
sv11' = Segment(B'_{4}, R)
S = Rotate(B'_{4}, (rotAng * rotSli), V)
R' = Rotate(R, (rotAng * rotSli), V)
sv11'' = Segment(S, R')
T = Rotate(B''_{3}, (rotAng * rotSli), V)
Q' = Rotate(Q, (rotAng * rotSli), V)
sv12'' = Segment(T, Q')
onboarding = true
pulsingSpeed: 8
pulsing = 1 (slider from 0 to 1, step 0.1)
pulsingObject1 = circlePixels(B, 7 + (7 * pulsing), Corner[1], Corner[3], Corner[5])
pulsingObject2 = circlePixels(B', 7 + (7 * pulsing), Corner[1], Corner[3], Corner[5])
U = (-4.905130715143854, 7.696541087910909)
W = (-4.188783474670568, 7.696541087910909)
BF = Rotate(B, α - 15°, A)
L1: Center[d] + (2.5 * UnitVector[AngularBisector[B, A, BF]])

Tool: circlePixels
circlePixels(A,pixelRadius,Corner1,Corner3,Corner5
Input: A, pixelRadius, Corner1, Corner3, Corner5
Output: newCircle

pointRadius: (pixelRadius / x(Corner5) * (x(Corner3) - x(Corner1)))
newCircle = Circle(A, pointRadius)