
Andy Little <andy <at> servocomm.freeserve.co.uk> writes:
"Hubert Holin" wrote
Janek Kozicki <janek_listy <at> wp.pl> writes:
Paris (U.E.), le 17/07/2006 Bonjour
Following functions would be needed:
operator*(vector<3,T1>,quaternion<T2>) // most important from_rotation_matrix(matrix<3,3,T>) to_rotation_matrix() from_axis_angle(vector<3,T1> axis, T2 angle) to_axis_angle() to_euler_angles()
and few others. Similar functionality is already in boost vault: directory "Math - Numerics", file Quaternion.h
Without quaternion rotations this linear algebra library would be pretty useless for me, so I hope it'll be there :)
Paris (U.E.), le 13/07/2006
Bonjour
If there is a reasonably standard (algebra, geometry) library to interface the quaternions with, I will provide the necessary functions.
[SNIP]
Is there any chance of writing some sort of quaternions for dummies documentation? Basically I am the dummy when it comes to maths , unless I have some job to perform like getting point x and rotating it about axis a through angle b. Unfortunately the higher level stuff is putting the quaternion library out of my reach. I think my only use for quaternions is for rotation. My basic use case (maybe like Janek) would be
1) some way to construct the quaternion from (say) an axis angle representation of the rotation 2) some way to apply it to a 3D point.
I hope that I could then make use of the library without needing to know all the maths.
I am willing to build the bridges, but there has to bee something at the end of the bridge :-) ! There are geometry-oriented C++ libraries outside Boost, but none within, despite several proposals to develop such over the last few years. Basicaly, that's why I included some example code to show how quaternions could be plugged into rotation matrices, but no formal, part-of-the-library component. I would of course welcome the inclusion of geometry-oriented libraries within Boost (and I truly believe there is an actual need for them). I should add this is not a symptom of NIH, it is just that one has to learn a library to interface with it, and this does take time. There is no much point in spending that time for libraries whose future is at the whim of some brainless corporation, or depends upon only the long-term interest and availability of academia (as, sadly, these later usualy highly interesting libraries have a nasty habit of dying after a few years at most).
BTW my plan is also to make a quaternion that is compatible with my Quan library:
http://quan.sourceforge.net/index.html
I did some test on complex quantities in a previous incarnation of Quan and there seemed to be no problems, so for instance one could do
typedef complex<resistance> impedance; complex<voltage> v; complex<current> i
impedance z = v / i;
This is of course an entirely practical example.
In a similar vein, it would be fun to do simulations using the quaternionic version of Maxwell's equations.
I guess that the same thing could be applied in 3D, though I don't know if there is such a practical use, though there may well be.
My first reason to look at quaternions was to solve a 3D problem (interpolation of orientations under constraints). So yes, there is immense practical use in that field as well.
Anyway these are the sorts of things I would like to try to do with a quaternion.
regards Andy Little
Merci Hubert Holin