n:666
L:55
F: ((-L), 0)
α = 26 (slider from 0 to 120, step 1)
dy = 0 (slider from -2 to 2, step 0.05)
M': (0, dy)
dinc = Ray(M', F)
M_1: (0.5; ((-α))°) + M'
M_2: (0.5; (180 - α)°) + M'
dmir = Line(M_1, M_2)
d2_N = Ray(M', Vector[OrthogonalVector[dmir]])
θ: 180° - Angle[dinc, d2_N, dinc]
θ1'_B: ((asin(((2 * n) * 3.9E-4) + sin(θ)) * 180 / π))°
R1'_B = Ray(M', Vector[Rotate[Direction[d2_N], θ1'_B, M']])
rtube:1.35
l: rtube - (dy * tan(α°))
dy': (-(rtube - l))
tube, a, b, c, d = Polygon(((-L), (-rtube)), (2, (-rtube)), (2, rtube), ((-L), rtube))
F' = Mirror(F, dmir)
roeil:1
Mir = Segment(M_1, M_2)
Ang = Angle(F', (0, 0), F)
rf1 = Ray(F', M_1)
rf2 = Ray(F', M_2)
dtr = -0.3 (slider from -3 to 2, step 0.1)
trou = Segment(((-roeil) + dtr, (-rtube)), (roeil + dtr, (-rtube)))
θ_0: 90° - α° + Angle[M', F, (0, 0)]
θ2_V: ((asin(((-n) * 5.5E-4) + sin(θ)) * 180 / π))°
θ1_V: ((asin((n * 5.5E-4) + sin(θ)) * 180 / π))°
θ1_B: ((asin((n * 3.9E-4) + sin(θ)) * 180 / π))°
θ2_B: ((asin(((-n) * 3.9E-4) + sin(θ)) * 180 / π))°
θ1_R: ((asin((n * 7.0E-4) + sin(θ)) * 180 / π))°
θ2_R: ((asin(((-n) * 7.0E-4) + sin(θ)) * 180 / π))°
R1_J = Ray(M', Vector[Rotate[Direction[d2_N], θ1_V, M']])
R1_B = Ray(M', Vector[Rotate[Direction[d2_N], θ1_B, M']])
R2_B = Ray(M', Vector[Rotate[Direction[d2_N], θ2_B, M']])
R2_V = Ray(M', Vector[Rotate[Direction[d2_N], θ2_V, M']])
R2_R = Ray(M', Vector[Rotate[Direction[d2_N], θ2_R, M']])
R1_R = Ray(M', Vector[Rotate[Direction[d2_N], θ1_R, M']])
θ1'_R: ((asin(((2 * n) * 7.0E-4) + sin(θ)) * 180 / π))°
θ2'_R: ((asin(((-2 * n) * 7.0E-4) + sin(θ)) * 180 / π))°
R2'_R = Ray(M', Vector[Rotate[Direction[d2_N], θ2'_R, M']])
R1'_R = Ray(M', Vector[Rotate[Direction[d2_N], θ1'_R, M']])
θ2'_B: ((asin(((-2 * n) * 3.9E-4) + sin(θ)) * 180 / π))°
R2'_B = Ray(M', Vector[Rotate[Direction[d2_N], θ2'_B, M']])
Spectre1 = false
Spectre2 = true
Ordre1 = false
Ordre2 = true
M1 = NaN
r2b_R = Ray(M_2, Vector[Translate[Direction[R2_R], Vector[M', M_2]]])
r2b_B = Ray(M_2, Vector[Translate[Direction[R2_B], Vector[M', M_2]]])
r1b_B = Ray(M_2, Vector[Translate[Direction[R1_B], Vector[M', M_2]]])
r1b_R = Ray(M_2, Vector[Translate[Direction[R1_R], Vector[M', M_2]]])
r1a_R = Ray(M_1, Vector[Translate[Direction[R1_R], Vector[M', M_1]]])
r1a_B = Ray(M_1, Vector[Translate[Direction[R1_B], Vector[M', M_1]]])
r2a_R = Ray(M_1, Vector[Translate[Direction[R2_R], Vector[M', M_1]]])
r2a_B = Ray(M_1, Vector[Translate[Direction[R2_B], Vector[M', M_1]]])
r1b'_B = Ray(M_2, Vector[Translate[Direction[R1'_B], Vector[M', M_2]]])
r1a'_B = Ray(M_1, Vector[Translate[Direction[R1'_B], Vector[M', M_1]]])
r2a'_B = Ray(Translate[M', Vector[M', M_1]], Vector[Translate[Direction[R2'_B], Vector[M', M_1]]])
r2b'_B = Ray(M_2, Vector[Translate[Direction[R2'_B], Vector[M', M_2]]])
r2b'_R = Ray(M_2, Vector[Translate[Direction[R2'_R], Vector[M', M_2]]])
th_1: (asin((n * 5.0E-4)) * 180 / π)
nn:sin(atan(51.8 / 50)) / 5.3E-4
nn':sin(atan(50.2 / 50)) / 5.3E-4
n0:616
text, e, f, g, h = Polygon(((-L), (-rtube) - 0.2), (2, (-rtube) - 0.2), (2, rtube + 0.2), ((-L), rtube + 0.2))
ll: (tan(th_1°) * 80)
nn'':sin(atan(71.3 / 80)) / 5.0E-4 / 2
nn''':sin(atan(72 / 80)) / 5.0E-4 / 2
r2a'_R = Ray(Translate[M', Vector[M', M_1]], Vector[Translate[Direction[R2'_R], Vector[M', M_1]]])
r1a'_R = Ray(M_1, Vector[Translate[Direction[R1'_R], Vector[M', M_1]]])
r1b'_R = Ray(M_2, Vector[Translate[Direction[R1'_R], Vector[M', M_2]]])