4
$\begingroup$

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} $

thus

$ \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.

  • 0
    I believe you have a mistake there, it should be c = (b−a)/22018-12-12

2 Answers 2

1

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.

0

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.