Home Man
Today's Posts

Linux & Unix Commands - Search Man Pages

Plan 9 - man page for qball (plan9 section 9)

QBALL(9.2)									       QBALL(9.2)

       qball - 3-d rotation controller

       #include <libg.h>

       #include <geometry.h>

       void qball(Rectangle r, Mouse *mousep,
	    Quaternion *orientation,
	    void (*redraw)(void), Quaternion *ap)

       Qball is an interactive controller that allows arbitrary 3-space rotations to be specified
       with the mouse.	Imagine a sphere with its center at the  midpoint  of  rectangle  r,  and
       diameter  the smaller of r's dimensions.  Dragging from one point on the sphere to another
       specifies the endpoints of a great-circle arc.  (Mouse points outside the sphere are  pro-
       jected  to  the nearest point on the sphere.)  The axis of rotation is normal to the plane
       of the arc, and the angle of rotation is twice the angle of the arc.

       Argument mousep is a pointer to the mouse event that triggered the interaction.	It should
       have some button set.  Qball will read more events into mousep, and return when no buttons
       are down.

       While qball is reading mouse events, it calls out to the caller-supplied  routine  redraw,
       which is expected to update the screen to reflect the changing orientation.  Argument ori-
       entation is the orientation that redraw should examine, represented as a  unit  Quaternion
       (see  quaternion(9.2)).	 The  caller  may  set it to any orientation.  It will be updated
       before each call to redraw (and on return) by multiplying by the rotation  specified  with
       the mouse.

       It  is possible to restrict qball's attention to rotations about a particular axis.  If ap
       is null, the rotation is unconstrained.	Otherwise, the rotation will be  about	the  same
       axis as *ap.  This is accomplished by projecting points on the sphere to the nearest point
       also on the plane through the sphere's center and normal to the axis.


       Ken Shoemake, ``Animating Rotation with Quaternion Curves'', SIGGRAPH '85 Conference  Pro-


All times are GMT -4. The time now is 02:14 PM.

Unix & Linux Forums Content Copyrightę1993-2018. All Rights Reserved.
Show Password