ALTMAN@SUMEX-AIM.STANFORD.EDU (Russ Altman) (03/11/88)
Does anyone have a reference to code, article or book which discusses good ways to map mouse motion to smooth rotation and translation of objects on a graphics screen? I could imagine playing around a long time finding the most natural interface. However, I have played with some programs that have very good algorithms. For instance, the mouse mapping in the molecular graphics program MMS is quite good. Any help? Thanks, Russ -------
STAFF.SAS@CHIP.UCHICAGO.EDU (Stuart Schmukler) (03/12/88)
I recall a note in the ACM journal TOG (Transactions On Graphics) about that subject. It may have been a year or so ago. SaS -------
blbates@AERO4.LARC.NASA.GOV (Bates TAD/HRNAB ms294 x2601) (03/14/88)
Did I miss a message? Did some one have a question about mouse driven rotations? I have used a progam called PLOT3D that does that, and I have writen several programs and subroutines that do that. What was the exact question?
blbates@aero4.larc.nasa.GOV (Bates TAD/HRNAB ms294 x2601) (03/15/88)
Personally, I prefere driving rotations based on the change in mouse position. I have used programs that use the absolute position, but most of the time I don't like it. However, there have been a few cases where absolute positioning has been better. If you want to return to a specific orientation or if you want to limit the amount of movement. I have a sample FORTRAN source I can send you that reads in x,y,z coordinates and allows you to rotate them about all 3-axes of rotation, translate, zoom, change perspective, Gouraud shade sufaces with and with out Z-buffering. It is constantly in flux, as I try new and different things, but it will give you a good start. I will send it in my next message (almost 1000 lines). If you have any questions or suggestions for improvement let me know.
wca@ut-emx.UUCP (William C. Anderson) (03/17/88)
Interestingly, almost all workstation manufacturers have settled on the optical mouse design originated by Mouse Systems, Inc. This mouse is interesting in that it has *two* LED/phototransistor "eyes" in its bottom. Although usually only one eye is turned on (this is sufficient to report relative position), both eyes can be enabled and will report on their respective relative positions. This is sufficient information to generate (small) rotations. I wrote just such a driver for a Sun 1 workstation (serial number 91 - my age is showing) and a simple program to test the human factors related to the idea that by rotating and translating the *mouse*, an object on the screen would likewise rotate and translate. It was a very intuitive interface, in my humble opinion. Those readers schooled in geometrical matters will realize the limitations of the mouse in reporting the rotation. Whereas the information which you need to generate accurate rotations is sin(theta) or cosine(theta), the two eyes in fact generated information related to tangent(theta). Therefore the rotation information became difficult to deal with as theta -> pi/2, or tangent(theta) -> +infinity. Still, with a "reset rotation" command/switch and by rotating in small increments, the user interface seemed to me to be unusually transparent. I have never seen this implemented elsewhere. William Anderson - University of Texas Computation Center - wca@emx.utexas.edu Disclaimer: No connection with Mouse Systems Inc. or Sun Microsystems Inc., except as a satisfied user of their equipment.
blbates@AERO4.LARC.NASA.GOV (Bates TAD/HRNAB ms294 x2601) (03/18/88)
Our IRIS 3030 uses both LED's, one for left/right (x) translation and the second for up/down (y) translation. In the software I wrote I used the mouse buttons to determine whether the mouse was being used for translation, rotation, or something else.