I want to create general equations to find the 3D rotational angles of a mirror. The mirror reflects sunlight (coming from direct from the Sun!) onto a collector tower. There will be many mirrors for me to calculate but I want to get the math working for individual case before iterating.
I figure, observing the Law that angle of reflection (AoR) must equal angle of incidence (AoI), to determine the attitude of the reflection plane, I just need the AoR (fixed for any given mirror location) and the (AoI) ie. the Sun position. To find the 3D angle perpendicular to the mirror plane, I should just need to calculate the mean vector of the AoI and AoR as spherical unit vectors.
The collector tower is at (0,0) on the XY plane and the point at which the reflected beams hit I am arbitrarily setting as Point C at (0,0,1) in XYZ Cartesian space.
The mirror reflector location (defined as point location R) is (X,Y,0) in XYZ Cartesian space.
Having points C and R I can determine what the angle of reflection always needs to be, where ever the sun is in the sky. I'm expressing the angle of reflection in spherical co-ordinates (r, ɸ, θ), where r=1 since I'm using spherical unit vectors.
I think the next step is break down the vectors ⇀RC and ⇀SR (vector from notional sun position on unit sphere to R, at origin of unit sphere) into there X,Y and Z components, so I can perform X,Y,Z component addition and divide by two to get the perp-to-mirror vector and therefore describe the rotational co-efficient of the mirror. This is where I'm having trouble.
If anybody can point me to some online reading or push me in right direction I'd be very grateful. Part of my problem is knowing the right way to describe and draw the problem to break it down correctly… I have pages of attempts.
I've studied trig at pre-uni level (years ago) but I've never studied Euler or Quartoian geometry which seems to be where comp-sci literature tends to go when discussing 3D transformations. I feel like I should be able to do this without that kind of heavy lifting? Hopefully!
Pictures of what I'm trying to animate: