Gnomon Shadow

Winter Solstice

North Pole

South Pole

Stick

Summer Solstice

Spring Equinox

Autumn Equinox

03

02

01

12

11

10

09

08

07

06

05

04

Choose latitude

Move Earth around Sun

Towards Sun

WinterSolstice = (-3.3682589451245706, -2.573960175259587)
F_1 = (-4.368258945124571, -2.573960175259587)
I = (-8.36825894512457, -2.573960175259587)
H_1 = Midpoint(I, F_1)
l_1 = Segment(H_1, F_1)
Sun = Point(l_1)
q = Ellipse(I, F_1, WinterSolstice)
EARTH = Point(q)
δ = Angle(WinterSolstice, Sun, EARTH)
C = (7, -2)
B = (3, -2)
latitude = 0.5358160803622591 rad (slider from 0 to 1.5707963267948966, step 0.0017453292519943296)
A = (3, -4)
J = (10, 2.5)
K = (14, 2.5)
L = (14, 2)
M = (10, 2)
N = (10, 5)
O = (10, 4)
P = (11, 5)
Q = (11, 4)
R = (12, 5)
S = (12, 4)
T = (13, 5)
U = (13, 4)
V = (14, 5)
W = (14, 4)
Z = (15, 5)
A_1 = (15, 4)
B_1 = (16, 5)
C_1 = (16, 4)
f_1 = Segment(O, C_1)
c = Circle(B, C)
C' = Rotate(C, 23.44° - δ * 46.88 / 180, B)
C''_1 = Mirror(C', B)
b = Segment(C''_1, C')
d = OrthogonalLine(B, b)
NorthPole = Intersect(c, d, 2)
SouthPole = Intersect(c, d, 1)
e = Segment(NorthPole, SouthPole)
C''_2 = Rotate(C', latitude, B)
α = Angle(C', B, C''_2)
f = Circle(C''_2, 1.5)
g = Segment(B, C''_2)
F = Intersect(f, g, 1)
F' = Mirror(F, C''_2)
h = Segment(C''_2, F')
k = OrthogonalLine(C''_2, h)
i = Line(F', xAxis)
G = Intersect(k, i)
l = Segment(G, C''_2)
H = Point(i)
j = Ray(F', H)
m = Segment(G, F')
β = Angle(l, j)
γ = Angle(j, l)
n = Segment(C''_2, G)
C'''_1 = Mirror(C''_2, e)
p = Segment(C'''_1, C''_2)
a_1 = Segment(F_1, I)
SummerSolstice = Mirror(WinterSolstice, H_1)
k_1 = Circle(EARTH, 0.4)
M_1 = Point(k_1)
N_1 = Mirror(M_1, EARTH)
j_1 = Segment(M_1, N_1)
i_1 = OrthogonalLine(Sun, a_1)
SpringEquinox = Intersect(q, i_1, 1)
AutumnEquinoxe = Intersect(q, i_1, 2)
image1' = Rotate(image1, 23.44° - δ * 46.88 / 180, B)
C''_3 = Rotate(C', 23.44*°, B)
ε = Angle(C', B, C''_3)
C'''_2 = Mirror(C''_3, e)
C'''_3 = Mirror(C''_3, b)
D_1 = Mirror(C'''_3, e)
a = Segment(C'''_2, C''_3)
TropiqueCapricorne = Segment(C'''_3, D_1)
C'' = Rotate(C', 66.56*°, B)
ζ = Angle(C', B, C'')
C'''_4 = Mirror(C'', e)
C''' = Mirror(C'', b)
E_1 = Mirror(C'''_4, b)
r = Segment(C'''_4, C'')
s = Segment(C''', E_1)
η = Angle(G, F', C''_2)
EquinoxePrintemps'_1 = Rotate(SpringEquinox, 10.64516129032258*°, Sun)
θ = Angle(SpringEquinox, Sun, EquinoxePrintemps'_1)
t = Line(Sun, EquinoxePrintemps'_1)
D = Intersect(q, t, 2)
EquinoxePrintemps'_2 = Rotate(SpringEquinox, 39.67741935483871*°, Sun)
ι = Angle(SpringEquinox, Sun, EquinoxePrintemps'_2)
b_1 = Line(Sun, EquinoxePrintemps'_2)
E = Intersect(q, b_1, 2)
EquinoxePrintemps' = Rotate(SpringEquinox, 69.6774193548387*°, Sun)
κ = Angle(SpringEquinox, Sun, EquinoxePrintemps')
c_1 = Line(Sun, EquinoxePrintemps')
G_1 = Intersect(q, c_1, 2)
SolsticeEté'_1 = Rotate(SummerSolstice, 8.617021276595745*°, Sun)
λ = Angle(SummerSolstice, Sun, SolsticeEté'_1)
d_1 = Line(Sun, SolsticeEté'_1)
J_1 = Intersect(q, d_1, 2)
SolsticeEté'_2 = Rotate(SummerSolstice, 38.297872340425535*°, Sun)
μ = Angle(SummerSolstice, Sun, SolsticeEté'_2)
e_1 = Line(Sun, SolsticeEté'_2)
K_1 = Intersect(q, e_1, 2)
SolsticeEté' = Rotate(SummerSolstice, 67.97872340425532*°, Sun)
ν = Angle(SummerSolstice, Sun, SolsticeEté')
g_1 = Line(Sun, SolsticeEté')
L_1 = Intersect(q, g_1, 2)
EquinoxeAutomne'_1 = Rotate(AutumnEquinoxe, 10.112359550561797*°, Sun)
ξ = Angle(AutumnEquinoxe, Sun, EquinoxeAutomne'_1)
h_1 = Line(Sun, EquinoxeAutomne'_1)
O_1 = Intersect(q, h_1, 2)
EquinoxeAutomne'_2 = Rotate(AutumnEquinoxe, 40.44943820224719*°, Sun)
ο = Angle(AutumnEquinoxe, Sun, EquinoxeAutomne'_2)
m_1 = Line(Sun, EquinoxeAutomne'_2)
P_1 = Intersect(q, m_1, 2)
EquinoxeAutomne' = Rotate(AutumnEquinoxe, 71.79775280898876*°, Sun)
ρ = Angle(AutumnEquinoxe, Sun, EquinoxeAutomne')
n_1 = Line(Sun, EquinoxeAutomne')
Q_1 = Intersect(q, n_1, 2)
SolsticeHiver'_1 = Rotate(WinterSolstice, 10.112359550561797*°, Sun)
σ = Angle(WinterSolstice, Sun, SolsticeHiver'_1)
p_1 = Line(Sun, SolsticeHiver'_1)
R_1 = Intersect(q, p_1, 2)
SolsticeHiver'_2 = Rotate(WinterSolstice, 41.460674157303366*°, Sun)
τ = Angle(WinterSolstice, Sun, SolsticeHiver'_2)
q_1 = Line(Sun, SolsticeHiver'_2)
S_1 = Intersect(q, q_1, 2)
SolsticeHiver' = Rotate(WinterSolstice, 69.7752808988764*°, Sun)
υ = Angle(WinterSolstice, Sun, SolsticeHiver')
r_1 = Line(Sun, SolsticeHiver')
T_1 = Intersect(q, r_1, 2)
U_1 = (3, 2)
V_1 = (3, -6)
s_1 = CircleSector(B, U_1, V_1)
ra: Distance[G, C''_2] / Distance[F', C''_2]
texte15: "Ratio \;  \;  \frac{Stick's  \; Shadow  \; length}{Stick's  \; length}=" + (LaTeX[ra]) + ""
I_1 = Point(j)
W_1 = Point(h)
u = Vector(W_1, I_1)