||1. Overview||2. Errata||
3. Software Listings from
|4. Demonstration Programs||
5. Acknowledgements and
Visualizing Quaternions, is published by Morgan-Kaufmann/Elsevier, ISBN 10:0-12-088400-3/ISBN 13:978-0-12-088400-1. The book presents a comprehensive approach to the significance and applications of quaternions. This web page contains a selection of machine readable material such as code listed in tables in the book itself, as well as demonstrations related to the figures and implementing some of the visualizations mentioned in more detail.
About the author
Andrew J. Hanson is a professor of computer science at Indiana University in Bloomington, Indiana, and has taught courses in computer graphics, computer vision, programming languages, and scientific visualization. He received a BA in chemistry and physics from Harvard College in 1966 and a PhD in theoretical physics from MIT in 1971. Before coming to Indiana University, he did research in theoretical physics at the Institute for Advanced Study, Cornell University, the Stanford Linear Accelerator Center, and the Lawrence-Berkeley Laboratory, and then in computer vision at the SRI Artificial Intelligence Center in Menlo Park, CA. He has published a wide variety of technical articles concerning problems in theoretical physics, machine vision, computer graphics, and scientific visualization methods. His current research interests include scientific visualization (with applications in mathematics, cosmology and astrophysics, special and general relativity, and string theory), optimal model selection, machine vision, computer graphics, perception, collaborative methods in virtual reality, and the design of interactive user interfaces for virtual reality and visualization applications.
A list of errata for Visualizing Quaternions is maintained here. Please contact the author if you have information to add to the errata.
Back to top
|License: please read before downloading listings from this site.||Standard License Text|
| Chapter 7: Table 7.1: page 60
Implements ComplexProduct(), ComplexSum(), ComplexConjugate(), ComplexModulus()
|Chapter 7: Table 7.2: page 64 Implements QuaternionProduct(), QuaternionDot(), QuaternionConjugate(), NormalizeQuaternion()||Table 7.2|
| Chapter 13: Table 13.1: page 128
| Chapter 29: Table 29.1: page 379
Implements QQTo4DRot[p,q] Mathematica Code for the 4x4 orthogonal rotation matrix in terms of a double quaternion.
| Appendix E: Quaternion Survival Kit
Tables E.1 through E.7: pages 443-450
|Quaternion Survival Kit|
|Mathematica Quaternion Utilities||QuatBookUtils.nb|
|Appendix H: Quaternion Frame Integration
Standard and Quaternion implementations of code to plot a 3D space curve given only its curvature and initial conditions as input.
Back to top
All demonstration programs are without guarantees of any kind and subject to this agreement. Please read this before downloading, running, or incorporating any software from this site.
QuatRot: This is a basic demonstration package written using the most elementary possible machine-independent OpenGL GLUT interface. A version of this program has been an essential part of the author's Siggraph tutorials on quaternions, and it includes the most elementary quaternion visualization methods as well as a variety of other features such as a SLERP demonstration.
To the best of our
QuatRot can be compiled and run on any system
supporting OpenGL and GLUT; note that to get all the features, one must
support a three-button mouse and the shift key as a modifier. A couple of
dozen single-key keyboard commands to select among a wide variety of
options. The code and documentation are
elementary, but quite sufficient, e.g., to use the tool to visualize the
quaternion diagrams in Part I of the book.
QuatBeltdemonstration implements and visualizes a set of variations on the Belt Trick (Chapters 2 and 12), and supplements the necessarily limited images in the book with an interactive, customizable demonstrations. The code is based on the Qt system, and is precompiled for Linux and Windows XP.
QuatMapdemonstration implements and visualizes mappings from a variety of frame choices on curves and surfaces to their equivalent quaternion fields. This program provides an interactive supplement to Chapters 20,21, 22, and 24. The code is based on the Qt system, and is precompiled for Linux and Windows XP.
This material is based in part upon work supported by the National Science Foundation under Grant Numbers 0204112 and 0430730.
Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author and do not necessarily reflect the views of the National Science Foundation.
Back to top