1
$\begingroup$

I'm trying to calculate the reflection of a point across another point, both of which are on the surface of a sphere. I believe I could do this by getting the formula for the great circle of the sphere that contains those two points, reflecting the central angle of the great circle to get the point I want, and then converting it back.

I know how to convert between 3D Cartesian and spherical coordinates and have both for the two points, but I have no idea where to begin to try to get a great circle from the two points, or if this is even the best approach.

I was initially just reflecting longitude and latitude as if they were on a plane until testing that revealed that doesn't work at all so I started looking up spherical geometry on Wikipedia. I found a formula to get the distance between my two points here (http://en.wikipedia.org/wiki/Great-circle_distance) but I don't know where to go from there.

Thanks to anyone that can provide any assistance!

EDIT: I just found this: http://en.wikipedia.org/wiki/Rodrigues%27_rotation_formula I believe this can be used to more simply solve my problem.

$\endgroup$
  • $\begingroup$ What is a reflection of a point across another point? Don't you mean just a rotation by 180 degrees around the axis determined by the second point? (Usually reflections are defined by means of hyperplanes, it is not clear to me what you want) Btw to get the great circle, just compute the intersection of the sphere with the 2-plane generated by your two points and the origin. $\endgroup$ – Peter Franek Jan 2 '15 at 8:57
  • $\begingroup$ Yes I do mean rotation by 180 degrees around the point. To do it on a plane I'd just go newX = (2 * x1) - x2 (and same for y). I want to do the same thing, just as if it were on the surface of a sphere instead of being flat. The sphere/plane intersection gives me a place to start looking stuff up about how to do that so I'll try looking into that for now. $\endgroup$ – Jake Armstrong Jan 2 '15 at 18:02
  • $\begingroup$ Your rotation is then given as a matrix by $CAC^{-1}=CAC^T$ where $C$ has in columns any orthonormal basis $(a,b,c)$ such that $a$ is your (normalized) "second point" on the sphere, and $A=\text{diag}(1,-1,-1)$. $\endgroup$ – Peter Franek Jan 3 '15 at 9:52
0
$\begingroup$

I just found this: http://en.wikipedia.org/wiki/Rodrigues%27_rotation_formula I believe this can be used to more simply solve my problem.

| cite | improve this answer | |
$\endgroup$

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.