Rayos de luz

Ángulos a estudiar

Ángulo del palo

Gráfico de la función

Inicia/Detiene animación

Reinicia animación

r = 3 (slider from 0 to 10, step 0.1)
O: (-5, 0)
c = Circle(O, r)
α = 0.5235987755982988 rad (slider from 0 to 18.84955592153876, step 0.1°)
A = Point(c)
A' = Rotate(A, α, O)
anima: true
lista_1 = Sequence(Rotate[A, (360° * i / 12), O], i, 0, 13, 1)
lista_2 = Sequence(Segment[O, Element[lista_1, i]], i, 1, 12, 1)
palo = Segment(O, A')
Densidadluz = 0.3 (slider from 0.1 to 2, step 0.1)
pared = 0 (slider from 0 to 50, step 0.1)
f: x = pared
c1, g, h, h_1, i_1, j_1 = Polygon(A', (pared, y(A')), (pared, y(O)), O, A')
A'': (α + pared, y(A'))
A''': (pared, y(A''))
β = Angle(A, O, A')
i = Segment(A''', A'')
j = Segment((pared, 0), (pared + α, 0))
k = Segment(A'', (pared + α, 0))
a = false
b = false
d = false
e = false
animar = false
p(x) = If[pared ≤ x ≤ α + pared, (r * sin(x + pared))]
l = Segment(A''', (0, 0))
rayosluz = Sequence(Vector[(-12, 4.5 - i), (pared, 4.5 - i)], i, 0, 9, Densidadluz)
grados: {"0º", "30º", "60º", "90º", "120º", "150º", "180º", "210º", "240º", "270º", "300º", "330º"}
gradosaestudiar = Sequence(Text[Element[grados, i], (((r + 0.6) * cos((((i - 1) * 30))°)) + x(O) - 0.4, ((r + 0.6) * sin((((i - 1) * 30))°)))], i, 1, 12, 1)