eclipses

Ombre lune

Ombre terre

A = (4.22, 0.78)
d = Circle(A, 5)
Soleil = Circle(A, 2)
B = Point(d)
α = 3.4033920413889427 rad (slider from 0 to 6.283185307179586, step 5°)
β = 3.141592653589793 rad (slider from 0 to 6.283185307179586, step 5°)
B' = Rotate(B, α, A)
γ = Angle(B, A, B')
Terre = Circle(B', 0.74)
f = Circle(B', 1.25)
C = Point(f)
C' = Rotate(C, β, B')
δ = Angle(C, B', C')
Lune = Circle(C', 0.25)
g = Line(A, C')
D = Point(Soleil)
h = Segment(A, D)
i = Line(C', h)
E = Intersect(Lune, i, 2)
j = Line(D, E)
F = Intersect(g, j)
k, l = Tangent(F, Soleil)
G = Intersect(Soleil, k, 1)
H = Intersect(Soleil, l, 1)
I = Intersect(Lune, l, 1)
J = Intersect(Lune, k, 1)
poly1, g_1, h_1, i_1, j_1 = Polygon(G, H, I, J)
K = Intersect(k, l)
poly2, k_1, j_2, i_2 = Polygon(J, I, K)
m = Line(B', A)
L = Point(Soleil)
n = Line(A, L)
p = Line(B', n)
M = Intersect(Terre, p, 2)
q = Line(M, L)
N = Intersect(m, q)
r, s = Tangent(N, Soleil)
O = Intersect(Terre, s, 1)
P = Intersect(Terre, r, 1)
Q = Intersect(Soleil, s, 1)
R = Intersect(Soleil, r, 1)
poly3, o, p_1, r_1, q_1 = Polygon(O, P, R, Q)
poly4, o_1, n_1, p_2 = Polygon(N, P, O)
a = true
b = true