QuatView
|
Quaternion visualization and conversion program for Windows. Includes 3D OpenGl graphics, real-time quaternion file playback, and a server to receive and display quaternion data from remote computers via TCP network. Quaternion visualization made easy.
QuatView is a program for computing and displaying quaternions, Euler angles, and rotation matrices. These are all methods for mathematically specifying the orientation of an object in 3D space. QuatView includes the following components:
1. A display tool that shows how the Euler angles, quaternion component values, and rotation matrix components all vary as the 3D orientation varies.
2. A conversion tool that can convert 3D orientation parameters to and from Euler angles, quaternion, rotation matrix, and rotation axis/angle.
3. A quaternion player that reads a formatted text file containing quaternion and time values and then displays the object orientation as a function of time with a user-selected frame rate or in real-time.
4. A network server that can receive and display quaternion data that is transmitted from client applications running on remote computers.
5. A 3D viewer that displays the object orientation in window that can be resized up to full-screen.
Quaternions and their relationship to 3D orientation can be difficult to understand and visualize. The same can be said of 3D rotational transformations in general. Some of the confusion arises from the different conventions that are commonly used for mathematically describing rotation. These conventions include the 3D coordinate frame handedness (left or right handed), choice of reference frame (fixed or rotating), and the rotation matrix storage scheme (row major or column major). The purpose of QuatView and the associated documentation is to reduce this confusion and thereby promote greater understanding of quaternions and the mathematics of 3D rotation.
QuatView is a multi-threaded Windows application. It is written in C# and uses the Microsoft dot net runtime framework (version 3.5). It also uses OpenGL and requires a 3D graphics card for optimal performance. QuatView is object oriented and built around a general purpose quaternion class that encapsulates all the mathematical properties and conversion calculations. This quaternion class source code is available by email request (Email address is codeman@TobyNorris.com).
QuatView is freeware and can be freely used and distributed according to the license agreement given here. The author does reserve all rights to the program and documentation in accordance with international copyright law.
QuatView has the following features and capabilities:
1. Provides an interactive GUI that allows the user to vary the Euler angles or quaternion components while continually displaying the corresponding Euler Angles, quaternion components, and rotation matrix components.
2. Provides a 3D graphical display of the orientation as the Euler angles or quaternion components are varied.
3. Allows the user to input any arbitrary vector and then observe how the vector components vary with changes in coordinate system orientation.
4. Provides an option to specify the input vector in the fixed frame coordinates (Frame A) or the rotating frame coordinates (Frame B).
5. Allows the user to convert an object orientation between any of the following four representations: Euler angles, quaternion, rotation axis and angle, and a 3x3 rotation matrix.
6. Supports the following 6 Euler angle rotation sequences which represent all the possible permutations with no repeated axes: 123,231,312,321,213,132.
7. Supports the following 6 rotation sequences that have one non-sequential repeated axis: 121,131,212,232,313,323.
8. Converts between any two different Euler angle rotation sequences.
9. Provides the following quaternion operations: complex conjugate, negate, normalize, and identity.
10. Provides the following rotation matrix operations: negate, transpose, orthonormalize, and identity.
11. Provides the following Euler angle operations: negate, reverse direction, and reset to zero.
12. Provides 3D animation of the orientation by automatically varying each Euler angle at a user-selectable speed.
13. Provides copy and paste of input data between the various GUI controls.
14. Provides selectable number of decimal places for output display.
15. Includes option to keep the Euler angles constant or keep the quaternion constant when changing the rotation sequence.
16. Includes option to plot the input vector and select the vector color.
17. Includes option to select the 3D plot object shape: cone, cylinder, cube, and sphere.
18. Includes option to select the major axis for cone and cylinder.
19. Includes option to enter the L/D ratio for cone and cylinder.
20. Includes option to display DCM orthonormality error.
21. Provides quaternion file playback capability with user-defined file format and customizable playback speed up to 60 Hz.
22. Provides real time quaternion file playback capability with the frame rate determined from time stamps in the playback file.
23. Provides interactive quaternion file playback with pause, forward, and reverse capabilities controlled by a slider trackbar.
24. Includes a TCP server to receive and display streaming quaternion data sent from a remote client.
25. Includes a TCP client class and DLL interface that can be easily added to any dot net application to provide the capability to send quaternion data to QuatView over the internet.
26. Includes a TCP client test application that can read and transmit quaternion history files from remote computers to the QuatView server.
27. Provides a scalable 3D graphics window to display the rotating body orientation at sizes up to full-screen.
Future Capabilities
QuatView has the following list of planned future capabilities:
1. Provide a non-interactive command line interface to convert between any two orientation representations.
2. Provide an option to read binary playback files.
3. Include an IGES or ACIS file reader so that complex 3D surface models can be imported and displayed.
4. Provide option to switch between left and right handed coordinate system conventions.
5. Provide option to switch between clockwise and counterclockwise rotation conventions.
The license of this software is Free, you can free download and free use this 3d graphic software.