Graphics Reference
In-Depth Information
sphere that takes P to Q along a great circle; this rotation must be about a unit vec-
tor orthogonal to P and Q , and it must have magnitude cos 1 ( P
·
Q ) . Rodrigues'
formula provides the matrix.
We use this matrix to multiply all vertex coordinates of the original mesh to
get a new mesh for display; the resultant operation feels completely natural to
many people.
Two problems remain: What happens when the user drags to a point outside
the virtual sphere? And what happens when the user's initial click is outside the
virtual sphere?
Various solutions have been implemented. When the user drags outside the
virtual sphere, one good solution is to treat the point Q as being the nearest point
on the sphere to the ray that the user is describing; this corresponds to using
t =
u in the quadratic solution.
When the user clicks outside the virtual sphere, one can treat subsequent
mouse-drags as instructions to rotate about the view direction, like the “rotate
object” interaction in most 2D drawing programs.
One problem with the virtual-sphere controller described so far is that the
action of the controller depends on the first point the user clicked; in a long inter-
action sequence, this may be gradually forgotten. An improved approach is to
treat each mouse-drag event as defining a new motion of the sphere, taking the
start point to the endpoint. Thus, a click and drag becomes a sequence of mouse
positions P 0 = P , P 1 , P 2 ,
c
·
u
/
u
·
, P n = Q , and the object is rotated by a sequence of
virtual-sphere rotations from P 0 to P 1 , followed by the rotation defined by P 1 and
P 2 ,etc.
With this modified version of the virtual sphere, it can be difficult to return to
one's starting position; in trade for this, one gets the advantage that a click-and-
drag-in-small-circles motion causes the object to spin about the view direction,
which users seem to learn instinctively.
There's a different approach to virtual-sphere rotation developed by Shoe-
make [Sho92], in which a click and drag from P to Q rotates the sphere from
P toward Q , but by double the angle used in the virtual sphere. A click at the cen-
ter of the virtual arcball followed by a drag to the edge of the arc ball produces not
a90 rotation, but a 180 rotation. This has the advantage that one can achieve
any desired rotation of the object by a single click and drag (e.g., spins about the
view direction are generated by dragging from one point near the boundary of the
ball to another).
...
11.7 Discussion and Further Reading
For the mathematically inclined, the study of SO ( n ) is covered in several
topics [Che46, Hus93, Ste99], and some of the basic properties of S n and SO ( n )
are discussed in many introductory topics on manifolds [GP10, Spi79a].
The classic work on quaternions is by Hamilton [Ham53], but more modern
expositions [Che46, Hus93] are much easier to read.
Quaternions are an instance of a more general phenomenon developed by
Grassmann [Gra47] in which noncommutative forms of multiplication played a
central role. Unfortunately, Grassmann's ideas were so confusingly expressed that
they were largely ignored by his contemporaries. There has been some renewed
 
 
Search WWH ::




Custom Search