Describe the calculations performed in order to perform rotations about an arbitrary axis.
Tutorial Details:
Rotation about an Arbitrary Axis
It's probably the simplest way of doing rotations, but it has some problems. The biggest problem is called gimbal lock. You may or may not have already encountered this if you wrote code according to the last tutorial. If you encountered it and noticed it, without knowing what it was, you may have spent hours trying to figure out where you went wrong in your code, carefully comparing every line of your code to the tutorial, trying to find the difference. If that happened, I'm sorry.
There is nothing wrong with your code; there is something wrong with the math. If you'll recall, I told you two very important things, which you probably didn't connect in the last tutorial. 1) Matrix multiplication is not commutative. A*B != B*A . 2) We generated matRotationTotal by doing matRotationX * matRotationY * matRotationZ . If there was nothing wrong with the math, you should have been able to do matRotationY*matRotationZ*matRotationX , or any other order, and gotten exactly the same results. But you wouldn't.
This problem is the root cause of gimbal lock. Trying to visualize this might blow your mind, so if you don't understand the next paragraph, don't worry too much. Just remember that Gimbal Lock happens when one axis gets rotated before another axis, and the axes are no longer mutually perpendicular. It can be a large problem, or it can go unnoticed, depending on the application.
Read
Tutorial at: Click here to view the tutorial
Rate Tutorial: C and Cpp Graphics Rotation about an Arbitrary Axis Tutorial
View Tutorial: C and Cpp Graphics Rotation about an Arbitrary Axis Tutorial
Related
Tutorials:
Getting started with Java 2D - JavaWorld - July 1998
Getting started with Java 2D - JavaWorld - July 1998 |
3D graphics programming in
Java, Part 3: OpenGL
3D graphics programming in
Java, Part 3: OpenGL |
JavaWorld article about
JavaCC
JavaWorld article about
JavaCC |
Dynamic user interface is
only skin deep - JavaWorld May
2000
Dynamic user interface is
only skin deep - JavaWorld May
2000 |
Axis: The next generation of Apache SOAP
Axis: The next generation of Apache SOAP |
Put Java in the fast lane
Put Java in the fast lane |
Java's character and assorted string
classes support text-processing
Java's character and assorted string
classes support text-processing |
Axis-orizing objects for SOAP
Axis-orizing objects for SOAP |
Let the mobile
games begin, Part 2
Let the mobile
games begin, Part 2 |
The J2EE 1.4 Tutorial
The J2EE 1.4 Tutorial is a guide to developing enterprise applications for the Java 2 Platform, Enterprise Edition (J2EE) version 1.4. Here we cover all the things you need to know to make the best use of this tutorial. |
Maybe the future UI design of choice
Maybe the future UI design of choice |
Filtering and Transforming Digital Images
Filtering and Transforming Digital Images
In this Issue
Welcome to the Core Java Technologies Tech Tips for April 7, 2004. Here you\'ll get tips on using core Java technologies and APIs, such as those in Java 2 Platform, Standard Edition (J2SE).
|
Excerpt from Apache Axis Live
Excerpt from Apache Axis Live
This chapter, "Getting Started with the Apache Axis Project," you will take "a brief look at what Axis is and how it implements some of the SOAP services. |
Java look and feel icons
These pages contain a collection of toolbar button graphics. The graphics have been designed specifically for use with the Java look and feel. They conform to the Java look and feel Design Guidelines (see the "Designing Button Graphics" section of the "Ap |
Generate certificate chains for testing Java applications
OpenSSL toolkit to create a certificate chain of any length. He also describes common certificate attributes and shows you some sample Java code for reading the certificates you create into a Java keystore.
|
SOAP Compression Sender for Apache Axis
Axis can be extended with this transport sender to support the compression of SOAP messages. The sizes of SOAP messages are dramatically reduced resulting in faster transmission over slow network connections. The extension is easy to install and can be us |
Getting Started With the Mobile 3D Graphics API for J2ME
This tutorial introduces the Mobile 3D Graphics API for J2ME, JSR 184. The article presents an overview, potential application areas, the differences between JSR 184 and two related APIs, the classes in the new optional package, the programming model, the |
10 Minutes Guide to Ant
10 Minutes Guide to Ant
10 Minutes Guide to Ant
Previous Tutorial Index Next
Introduction
Well for the next 10 minutes get ready to devote to the ant guide. This will make some sence to the ant.
Ant is a free tool under GNU Licence and is |
Building Search Engine Applications Using Servlets !
Building Search Engine Applications Using Servlets !
Building Search Engine Applications Using Servlets
Please visit http://www.webappcabaret.com/javadevelopers/search to see running copy of our search engine.
Introduction
This tutorial takes |
VolatileBufferedToolkitImage Strategies
Ever wondered what kind of image to use in your application? Or what method to use in creating it? This article attempts to address this challenging topic. |
|
|
|