I have a flat mirror and a target. Given the sun's light angle of incidence, I must calculate how much to spin my mirror to hit the target with the light. The problem is shown in the following figure.

Mirror schematics

Given $a$, the angle of sun's light incidence, and $b$, the angle the reflected light must have in order to reach the target (from the center of the mirror), I must calculate $c$, the angle the mirror must spin. Simple enought, the solution is given by:

$c = {a + b \over 2}$

But there is a variation of this situation where it is not possible to rotate the mirror from it's center. The mirror is attached on the surface of a cylinder, and the spin is relative to the cylinder's center. In this new situation, $b$ is function of $c$.

Mirror and axis

Triangle relation

Considering I had the brilliant idea of using positive y-axis for angle reference, I soon figured out that

$ \begin{aligned} & x' = x - (- r \sin c) \\ & y' = y - r \cos c \\ & \tan b = {x' \over y'} \end{aligned} $


$ \begin{aligned} & c = {a + b(c) \over 2} \\ & c = {a + \arctan {x + r \sin c \over y - r \cos c} \over 2} \\ & 2 c = a + \arctan {x + r \sin c \over y - r \cos c} \\ & \tan (2 c - a) = {x + r \sin c \over y - r \cos c} \\ & {\sin (2 c - a) \over \cos (2 c - a)} = {x + r \sin c \over y - r \cos c} \end{aligned} $

This is as far as I could get finding $c$. I was not able to isolate $c$ in the equation, nor could I find a simpler relation between $c$ and $b$. How can I find $c$? Is there a simpler way to define $b(c)$, that does not resort to trigonometry? If not, how can I isolate $c$ in that last equation?

I need to program it, and I'd rather not resort to numerical methods because I can't remember a damn thing about it.

  • $\begingroup$ I believe you have a mistake there, it should be c = (b−a)/2 $\endgroup$ – JackKalish Dec 12 '18 at 15:47

I believe it is possible to isolate $c$ in your last equation, although I haven't written it all out, and I suspect that if I did I'd find the result too messy to be of much use. You can use $\sin(2c-a)=\sin2c\cos a-\cos2c\sin a$ and $\cos(2c-a)=\cos2c\cos a+\sin2c\sin a$, then $\sin2c=2\sin c\cos c$ and $\cos2c=2\cos^2c-1=1-2\sin^2c$ to get everything in terms of $\sin c$ and $\cos c$. Then you can use $\sin^2c+\cos^2c=1$ to express everything in terms of $\sin c$ or $\cos c$, whichever you prefer. You may have to juggle some square roots, but eventually you'll get to a polynomial, possibly of very high degree, in $\sin c$ (or $\cos c$).

I hope someone suggests a better way, but you may have to resign yourself to numerical methods.

  • $\begingroup$ 9 years too late : After expanding, using the tangent half-angle subsitution avoid to juggle some square roots and leads to a sixtic polynomial in $t$. Cheers :-) $\endgroup$ – Claude Leibovici Oct 31 '20 at 10:03

I have resorted to numerical methods. I used Wolfram Alpha to find the derivative of the equation and implemented Newton–Raphson method in C. It did the job.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.