Issue No. 06 - Nov.-Dec. (2011 vol. 31)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/MCG.2011.93
Gabriel Taubin , Brown University
After I became EIC in 2009, and particularly after we started the Education department, I realized that most CG&A articles are aimed at readers who already have considerable computer graphics experience. I suspected that many of our readers might benefit from articles for students and new practitioners or articles that look at well-known concepts in new ways.
Graphics Math & Code
Because I like to think and write about the mathematics of computer graphics and vision, I decided to start a department on this topic. I'm calling it Graphics Math & Code. I chose this name because I think that writing well-designed, efficient, and elegant code has much in common with writing well-thought-out, elegant, and clear mathematics. This is particularly true for code that implements mathematical concepts. It's my experience that the process of designing and creating efficient algorithmic implementations of mathematical concepts usually sheds much light on those often-obscure concepts. It particularly sheds light on the intuitive ideas from which those concepts evolved.
The inaugural article is about 3D rotations (see p. 84). Many popular and apparently unrelated representations of 3D rotations exist. The most efficient representation of a 3D rotation that must be applied to many 3D vectors is a 3 × 3 matrix. However, describing a rotation by specifying a rotation axis and an angle is much more intuitive. The exponential map and its inverse—the logarithm—are the theoretical links between one representation and the other. However, they don't lead directly to efficient algorithmic implementations.
The Rodrigues formula, which can be derived through an elementary analytic-geometry construction, links a rotation's description as a turn around an axis and the formal definition of the exponential map as a power series. The logarithm is equally easy to compute using this formula.
Quaternions are another popular representation of rotations. In the exponential map, a rotation is specified as an unconstrained 3D vector that results from multiplying the unit-length axis vector by the angle of rotation in radians. A quaternion can be described by a 3D vector of a length less than or equal to 1 that results from multiplying the unit-length axis vector by the sine of half the rotation angle.
Another representation is Cayley's rational parameterization, which is less popular but leads to efficient algorithms. This representation has a surprisingly simple algebraic definition for the forward and inverse maps, which are actually identical. In this representation, a rotation is described by a 3D vector of arbitrary length that results from multiplying the unit-length rotation axis vector by the tangent of half the rotation's angle.
Over time, Graphics Math & Code will also include invited articles. Don't hesitate to contact me directly to suggest topics or offer to write an article for it. I hope we also see some interesting tutorials.
Meet the Editors
This year, VisWeek runs from 23 to 28 October in Providence, Rhode Island (where I live). I'll be participating in the Meet the Editors panel ( www.visweek.org/visweek/2011/panel-session/all/all), along with the editors in chief of other major computer graphics publications. We'll each have roughly 10 minutes to discuss our publications in terms of mission, scope, impact factor, refereeing procedures, and so on. The remainder of the time will include a question-and-answer session. I encourage you to attend the panel.
Enjoy the new department, and I hope to see you at VisWeek.