   computing a dot product with very similar unit vectors
  Hi,I have a sphere in an application that has a very large earth scale radius. When I click a point on the surface I get the x,y,z point clicked and then make two vectors, one from the sphere centre (origin) to the camera position and one from the sphere centre to the click position. I use the arc cosine of the scalar returned from the dot product of the two vectors for the angle, which works fine for most cases to construct the angle/axis rotation. However, when I am very close to the surface and click a point (which in "game units" would still be classed as a few hundred metres away from where I am), the dot product returns values >= 1.0, or a value that is a significantly larger jump in rotation along the given axis (for the application anyway).So for example if I'm very close to the surface of the sphere and I select a point a few hundred metres away to rotate the camera to, it either wont move (>= 1.0) or move too far, because the two unitized vectors are so close together from origin. I have tried instead doing all the calculation using doubles instead of floats (the two vectors will always start in floating point x,y,z form), but that seemed to yield the same results. I also tried doing the dot product on non-unitized vectors and unitizing the result afterward, but still no good.Is there any way around this?Thanks for any help.   
  I'd try using the quaternion solution posted by jyk here.   ;  Thanks for that, it works nicely even with almost parallel vectors. :)   