I am trying to calculate where a beam hits a mirror. The mirror is described by this curve (two facing spherical mirrors):
Mirror[x_] := Piecewise[{
{{Sin[-87.5 °] + 0.5, Cos[-87.5 °]}, x < 0},
{{Sin[-x ° - 87.5 °] + 0.5,
Cos[-x ° - 87.5 °]}, x >= 0 && x < 5},
{{Sin[x ° + 82.5 °] - 0.5,
Cos[x ° + 82.5 °]}, x >= 5 && x < 10}
}, {Sin[92.5 °] - 0.5, Cos[92.5 °]}]
Now, I am just trying to get the crossing point with a line:
p = {0, 0};
v = {1, 0};
Solve[Evaluate[
Simplify[Mirror[s].{1, 0}] == (p + v t).{1, 0} &&
Simplify[Mirror[s].{0, 1}] == (p + v t).{0, 1}
], {s, t}]
The manual projection (.{1, 0}) is done because of the piecewise defined function, as they do not work with the usual Thread - we worked this out here. This code has been working well since then, but it does not for the current Mirror function. I have no idea what the problem could be. Any ideas?

