[comp.sys.amiga] Hyper mice

mjw@F.GP.CS.CMU.EDU (Michael Witbrock) (01/29/88)

Jon Wesener wrote concerning the difficulty of moving a mouse in 3d.

Actually, it's not hard at all.

Vanilla = XZ
Left button helf = XY
Right Button held = YZ 
(only two of these are strictly needed, still got buttons left over (counting 
the middle one) for another 2 dimensions) --- only problem is, I want to display stuff in O(10000) dimensions.

THAT is more tricky.

Michael


--
Michael.Witbrock@cs.cmu.edu mjw@cs.cmu.edu                          \
US Mail: Michael Witbrock/ Dept of Computer Science                  \
         Carnegie Mellon University/ Pittsburgh PA 15213-6890/ USA   /\
Telephone : (412) 268 3621 [Office]  (412) 441 1724 [Home]          /  \-- 
Michael.Witbrock@cs.cmu.edu mjw@cs.cmu.edu                          \
US Mail: Michael Witbrock/ Dept of Computer Science                  \
         Carnegie Mellon University/ Pittsburgh PA 15213-6890/ USA   /\
Telephone : (412) 268 3621 [Office]  (412) 441 1724 [Home]          /  \

jojo@astroatc.UUCP (Jon Wesener) (01/30/88)

In article <757@PT.CS.CMU.EDU> mjw@f.gp.cs.cmu.edu (Michael Witbrock) writes:
>Jon Wesener wrote concerning the difficulty of moving a mouse in 3d.
>
>Actually, it's not hard at all.
>
>Vanilla = XZ
>Left button helf = XY
>Right Button held = YZ 
>(only two of these are strictly needed, still got buttons left over (counting 
>the middle one) for another 2 dimensions) ...

But my amiga only has 2 buttons, the left for creating points and the right for
menus and popping out of different modes.  I also don't want to have to pick
up my mouse from the corner of the desk and place it in the center so that
it's resynched with whats on the screen.  3rd, that doesn't seem to have an
intuitive feel to it.  I did see something in a Sci. Amer. issue about a
ring suspended in a volume with taught wires.  pulling the the ring would
cause tension on the various wires and be translated into xyz movement.
Still it didn't have any buttons! ;-)



--j
 
-- 
jon wesener
... {seismo | harvard | ihnp4} ! {uwvax | cs.wisc.edu} ! astroatc!jojo

"if it makes you happy, it will make you weak..."

dillon@CORY.BERKELEY.EDU (Matt Dillon) (01/30/88)

The Right way to do it (my opinion, of course):

	The center of the screen is directly forward.  Moving the mouse off
	center causes a rotation left-right or up-down (relative to the
	current direction you are pointing)... the rotation continues at a 
	constant rate until the mouse is moved back near the center (the rate 
	is determined by the distance the mouse is from the center).

	Then, people usually put in hacks for 'slower/reverse' and
	'faster/forward'... usually holding one of the mouse buttons down
	and having the vertical position relative to the center determine 
	the speed.  SOME games make everything relative to the mouse's
	current position (i.e. you are only changing direction while the
	mouse is moving).  This is a *stupid* way of doing things.

	More complex applications (read: games/simulations) might want to
	give the user more control with mouse... for instance, to be able
	to set the wing pitch, or to have two acceleration rates, etc....

2D movement:
	Read "tank game".  In this case the vertical access is free, and
	usually one makes it the forward/reverse control.  Again, the
	velocity (or acceleration) is dependant on how far the mouse is 
	vertically from the center.

MENUS :

	In many applications, there is SO much one can do that both mouse
	buttons need to be used to handle movement.  In this case, the MENU
	button is usually enabled for menu's when it is in the title area
	of the application.

INCORRECT METHODS:

	Most IBM-PC CAD programs do this:  They *change* the mouse position
	from under your nose.  Very few amiga games do this.  In general,
	an application should NEVER move the mouse out from under the user.

	Jerky movement is the bane of all game players.  By making the 
	rate dependant on the horizontal and vertical distances from the
	center of the screen, the player/user has complete control; he can
	do anything from a half-hazzard 180 degree spin to a slow 1degree/sec
	turn with equal effort.

	As noted above, another no-no is to force the user to continuously
	pick up the mouse and put it back in the center of his pad.  This
	is one thing I really hate about Marble Madness.  It's maddenning!


						-Matt

hull@hao.ucar.edu (Howard Hull) (01/31/88)

I concur with Matt concerning the need for proportional response from mouse
displacements from center.  However, I find that it helps to have the system
tied to some form of genuine physical character (inertia plus viscous drag).

The one I prefer is like the one used on motion simulators.  For no buttons,
proportional left mouse produces proportional rate left yaw (or proportional
acceleration left yaw for inertial simulators).  To the right is same kind of
action.  Forward is down declination [pitch], (consistent motion rule for
inertial simulators) and back is up declination, (again, properly consistent
for inertial simulators).

For the left mouse button depression, you get proportional left roll (velocity
or acceleration, as before) with left displacement, right with right.  Forward
produces forward velocity or acceleration, and back produces negative velocity
or acceleration.

Menu choices (activated by the right mouse button) provide selection of yaw
or roll as the primary (no button) left-right mode, a selection for continue
or discontinue velocity or acceleration after button-up, and a choice for
position, velocity, or acceleration for the motion mode.  I would think that
acceleration and velocity modes would rarely be mixed for display programs,
but I do know that sometimes flight simulators will use roll/yaw with an
acceleration mode while pitch is position-proportional.  So it wouldn't hurt
to have a full set of mode choices for each of roll, pitch and yaw.

Then there is the matter of coordinate system handedness and choice of X,Y,Z
axis direction with respect to the manipulator.  That is probably covered in
the graphics standards (IGS, GKS, etc.) isn't it?

Now, a quote never said by anyone, anywhere, whoever lived to tell about it:
------------
"Well, standards do have their uses.  However, in some of our persuit aircraft,
the ailerons are rigged so that left stick produces left aileron up.  In others
it's that way for right stick.  We find that it does keep our pilots at their
sharpest, and that those that can't hack it are soon washed out of the system."
------------
						Howard Hull
						hull@hao.ucar.edu