2D rotation matrix plus another 2D rotation matrix is a similarity matrix (scaled 2D rotation)
Alec Jacobson
November 16, 2011
Consider we have two rotation matrices:
R1 = / cos(θ1) -sin(θ1) \
     \ sin(θ1)  cos(θ1) /
R2 = / cos(θ2) -sin(θ2) \
     \ sin(θ2)  cos(θ2) /
Then we can show that:
R1 + R2 = s * R3
where s is a scalar and R3 is another 2D rotation.
First we just add the components to get:
R1 + R2 = / cos(θ1)+cos(θ2)   -(sin(θ1)+sin(θ2)) \
          \ sin(θ1)+sin(θ2)    cos(θ1)+cos(θ2)   /
Notice we already have the right pattern:
R1 + R2 =  / A -B \
           \ B  A /
we just need to show that we can pull out a common scaling term and angle from A and B.
We can use trigonometric identities to turn the sums of cosines and the sums of sines into products, namely:
cos(θ1)+cos(θ2) = 2*cos((θ1+θ2)/2)*cos((θ1-θ2)/2)
sin(θ1)+sin(θ2) = 2*sin((θ1+θ2)/2)*cos((θ1-θ2)/2)
Now we declare that:
s = 2*cos((θ1-θ2)/2)
θ3 = (θ1+θ2)/2
Then it follows that:
R1 + R2
  =
  / s*cos((θ1+θ2)/2)  -s*sin((θ1+θ2)/2) \
  \ s*sin((θ1+θ2)/2)   s*cos((θ1+θ2)/2) /
  =
  s * / cos(θ3)  -sin(θ3) \
      \ sin(θ3)   cos(θ3) /
  = 
  s * R3