Re: [Algorithms] Scaled quaternion rotations
Brought to you by:
vexxed72
From: Jon W. <jw...@gm...> - 2008-06-26 16:34:03
|
Marc B. Reynolds wrote: >>> Here's some sample >>> formulas that represent rotations in quaternions, with various >>> different constraints: >>> >>> Q P (1/Q) R.1 >>> (1/Q) P Q L.1 >>> > > >> I see you are assuming column vectors on the right in a right-handed >> space. You might want to state those assumptions to make your formulas >> unambiguous. For examples of popular graphics APIs that don't use those >> assumptions, look no further than to Direct3D. >> > > Now, here you have lost me. There are no matrices in the above equations. > And if you were to convert them into matrices, there would be neither > column nor row vectors. Or do you mean converting the entire function...and > if that is the case it would depend on whether your inject 3 results into > row > or columns. Am I missing something here? > > > > I was not disambiguous enough. This is why it's hard :-) Also, I was confusing the vector multiplication order (qp vs pq) with the point transform functions, because I've recently had a discussion with some Microsofties about the insanity of using pq order for matrices but qp order for quaternions in the same API (XNA), especially when they use pq for both in another API (D3DX). What I should have said regarding your point transform functions: you are assuming a right-handed coordinate space when you write those formulas. In a left-handed space, what you call R.1 would actually result in a left-handed (real-world) rotation. I think we're mostly in understanding at this point, though. And regarding the double coverage pet peeve: as far as I can tell, Euler angles have double coverage too, if you let each of the angles range from -180 to 180. I'm wondering if that has some deeper meaning. Sincerely, jw |