Show wavefronts

Explore intensity pattern

Start or stop animation

Phase

Signal

Drag green dot to explore interference pattern.
Ctrl-F to clear trace.

d = 6 (slider from 5 to 10, step 0.2)
wavelength = 2 (slider from 2 to 5, step 0.1)
t = 1 (slider from 0 to 1, step 0.05)
S1: ((-d) / 2, 0)
S2: (d / 2, 0)
C11: ((-d) / 2 - t * wavelength, 0)
D11: ((-d) / 2 + t * wavelength, 0)
c11 = Semicircle(C11, D11)
C12: ((-d) / 2 - (t + 1) * wavelength, 0)
D12: ((-d) / 2 + (t + 1) * wavelength, 0)
c12 = Semicircle(C12, D12)
C13: ((-d) / 2 - (t + 2) * wavelength, 0)
D13: ((-d) / 2 + (t + 2) * wavelength, 0)
c13 = Semicircle(C13, D13)
C14: ((-d) / 2 - (t + 3) * wavelength, 0)
D14: ((-d) / 2 + (t + 3) * wavelength, 0)
c14 = Semicircle(C14, D14)
C15: ((-d) / 2 - (t + 4) * wavelength, 0)
D15: ((-d) / 2 + (t + 4) * wavelength, 0)
c15 = Semicircle(C15, D15)
C16: ((-d) / 2 - (t + 5) * wavelength, 0)
D16: ((-d) / 2 + (t + 5) * wavelength, 0)
c16 = Semicircle(C16, D16)
C17: ((-d) / 2 - (t + 6) * wavelength, 0)
D17: ((-d) / 2 + (t + 6) * wavelength, 0)
c17 = Semicircle(C17, D17)
C18: ((-d) / 2 - (t + 7) * wavelength, 0)
D18: ((-d) / 2 + (t + 7) * wavelength, 0)
c18 = Semicircle(C18, D18)
C19: ((-d) / 2 - (t + 8) * wavelength, 0)
D19: ((-d) / 2 + (t + 8) * wavelength, 0)
c19 = Semicircle(C19, D19)
C110: ((-d) / 2 - (t + 9) * wavelength, 0)
D110: ((-d) / 2 + (t + 9) * wavelength, 0)
c110 = Semicircle(C110, D110)
C111: ((-d) / 2 - (t + 10) * wavelength, 0)
D111: ((-d) / 2 + (t + 10) * wavelength, 0)
c111 = Semicircle(C111, D111)
C112: ((-d) / 2 - (t + 11) * wavelength, 0)
D112: ((-d) / 2 + (t + 11) * wavelength, 0)
c112 = Semicircle(C112, D112)
C113: ((-d) / 2 - (t + 12) * wavelength, 0)
D113: ((-d) / 2 + (t + 12) * wavelength, 0)
c113 = Semicircle(C113, D113)
E11: ((-d) / 2 - Max[0, (t - 0.5) * wavelength], 0)
F11: ((-d) / 2 + Max[0, (t - 0.5) * wavelength], 0)
d111 = Semicircle(E11, F11)
E12: ((-d) / 2 - (t + 0.5) * wavelength, 0)
F12: ((-d) / 2 + (t + 0.5) * wavelength, 0)
d112 = Semicircle(E12, F12)
E13: ((-d) / 2 - (t + 1.5) * wavelength, 0)
F13: ((-d) / 2 + (t + 1.5) * wavelength, 0)
d13_1 = Semicircle(E13, F13)
F14: ((-d) / 2 + (t + 2.5) * wavelength, 0)
E14: ((-d) / 2 - (t + 2.5) * wavelength, 0)
d13 = Semicircle(E14, F14)
E15: ((-d) / 2 - (t + 3.5) * wavelength, 0)
F15: ((-d) / 2 + (t + 3.5) * wavelength, 0)
d14 = Semicircle(E15, F15)
F16: ((-d) / 2 + (t + 4.5) * wavelength, 0)
E16: ((-d) / 2 - (t + 4.5) * wavelength, 0)
d16 = Semicircle(E16, F16)
E17: ((-d) / 2 - (t + 5.5) * wavelength, 0)
F17: ((-d) / 2 + (t + 5.5) * wavelength, 0)
d17 = Semicircle(E17, F17)
F18: ((-d) / 2 + (t + 6.5) * wavelength, 0)
E18: ((-d) / 2 - (t + 6.5) * wavelength, 0)
d18 = Semicircle(E18, F18)
E19: ((-d) / 2 - (t + 7.5) * wavelength, 0)
F19: ((-d) / 2 + (t + 7.5) * wavelength, 0)
d19 = Semicircle(E19, F19)
a = true
F110: ((-d) / 2 + (t + 8.5) * wavelength, 0)
E110: ((-d) / 2 - (t + 8.5) * wavelength, 0)
d10 = Semicircle(E110, F110)
E111: ((-d) / 2 - (t + 9.5) * wavelength, 0)
F111: ((-d) / 2 + (t + 9.5) * wavelength, 0)
d11 = Semicircle(E111, F111)
F112: ((-d) / 2 + (t + 10.5) * wavelength, 0)
E112: ((-d) / 2 - (t + 10.5) * wavelength, 0)
d12 = Semicircle(E112, F112)
E113: ((-d) / 2 - (t + 11.5) * wavelength, 0)
F113: ((-d) / 2 + (t + 11.5) * wavelength, 0)
d113 = Semicircle(E113, F113)
c = true
A = (0, 10)
e = OrthogonalLine(A, yAxis)
B = Point(e)
f = Segment(S1, B)
C = Intersect(c11, f, 1)
D = Intersect(c12, f, 1)
E = Intersect(c13, f, 1)
F = Intersect(c14, f, 1)
G = Intersect(c15, f, 1)
H = Intersect(c16, f, 1)
I = Intersect(c17, f, 1)
J = Intersect(c18, f, 1)
K = Intersect(c19, f, 1)
L = Intersect(c110, f, 1)
M = Intersect(c111, f, 1)
N = Intersect(c112, f, 1)
O = Intersect(c113, f, 1)
P = Intersect(d112, f, 1)
Q = Intersect(d13_1, f, 1)
R = Intersect(d13, f, 1)
S = Intersect(d14, f, 1)
T = Intersect(d16, f, 1)
U = Intersect(d17, f, 1)
V = Intersect(d18, f, 1)
W = Intersect(d19, f, 1)
Z = Intersect(d10, f, 1)
A_1 = Intersect(d11, f, 1)
B_1 = Intersect(d12, f, 1)
C_1 = Intersect(d113, f, 1)
D_1 = Intersect(d111, f, 1)
c113' = Mirror(c113, yAxis)
d113' = Mirror(d113, yAxis)
c112' = Mirror(c112, yAxis)
d12' = Mirror(d12, yAxis)
c111' = Mirror(c111, yAxis)
d11' = Mirror(d11, yAxis)
c110' = Mirror(c110, yAxis)
d10' = Mirror(d10, yAxis)
c19' = Mirror(c19, yAxis)
d19' = Mirror(d19, yAxis)
c18' = Mirror(c18, yAxis)
d18' = Mirror(d18, yAxis)
c17' = Mirror(c17, yAxis)
d17' = Mirror(d17, yAxis)
c16' = Mirror(c16, yAxis)
d16' = Mirror(d16, yAxis)
c15' = Mirror(c15, yAxis)
d14' = Mirror(d14, yAxis)
c14' = Mirror(c14, yAxis)
d13' = Mirror(d13, yAxis)
c13' = Mirror(c13, yAxis)
g = Mirror(d13_1, yAxis)
c12' = Mirror(c12, yAxis)
d112' = Mirror(d112, yAxis)
c11' = Mirror(c11, yAxis)
d111' = Mirror(d111, yAxis)
S1' = Mirror(S1, yAxis)
b = Segment(S2, B)
F_1 = Intersect(c112, b, 1)
G_1 = Intersect(d113, b, 1)
PD: Length[b] - Length[f]
Int: cos(π * PD / wavelength)^(2)
BI: (x(B), y(B) + 0.5)
B2: (x(BI) + 0.25, y(BI))
B1: (x(BI) - 0.25, y(BI))
h = Segment(B1, B2)
B3: (x(BI), y(BI) + Int)
J_1 = Point(h)
i = Segment(B3, J_1)
K_1 = Intersect(d111', b, 1)
M_1 = Intersect(g, b, 1)
N_1 = Intersect(d13', b, 1)
O_1 = Intersect(d14', b, 1)
P_1 = Intersect(d16', b, 1)
Q_1 = Intersect(d17', b, 1)
R_1 = Intersect(d18', b, 1)
S_1 = Intersect(d19', b, 1)
T_1 = Intersect(d10', b, 1)
U_1 = Intersect(d11', b, 1)
V_1 = Intersect(d12', b, 1)
W_1 = Intersect(d113', b, 1)
Z_1 = Intersect(d112', b, 1)
A_2 = Intersect(c11', b, 1)
B_2 = Intersect(c12', b, 1)
C_2 = Intersect(c14', b, 1)
D_2 = Intersect(c15', b, 1)
E_2 = Intersect(c16', b, 1)
F_2 = Intersect(c17', b, 1)
G_2 = Intersect(c18', b, 1)
H_2 = Intersect(c19', b, 1)
I_2 = Intersect(c110', b, 1)
J_2 = Intersect(c111', b, 1)
K_2 = Intersect(c112', b, 1)
L_2 = Intersect(c13', b, 1)
M_2 = Intersect(c113', b, 1)
CMeter: (x(B) + 1, y(B) + 1.5)
Meter = Circle(CMeter, 0.6)
PhaseAngle: 2 * π * Mod[PD / wavelength, 1]
rMeter = 0.6
rvmeter = Segment(CMeter, (x(CMeter), y(CMeter) + rMeter))
E_1 = Intersect(Meter, rvmeter, 1)
EPhase: (x(CMeter) - rMeter * sin(PhaseAngle), y(CMeter) + rMeter * cos(PhaseAngle))
k = CircleSector(CMeter, E_1, EPhase)
Amp1: cos(2 * π * (f / wavelength - t))
Amp2: cos(2 * π * (b / wavelength - t))
Amp: Amp1 + Amp2
CAmp: (x(CMeter) - 2, y(CMeter))
H_1: (x(CAmp) - 0.5, y(CAmp))
lAmp1 = Segment(CAmp, H_1)
I_1 = Point(Circle[CAmp, 0.5])
lAmp2 = Segment(CAmp, I_1)
SAmp: (x(CAmp), y(CAmp) + Amp / 2)
lAmp = Segment(CAmp, SAmp)