Under the EM Force interaction mechanism, the menu
options are simply placed in a circle. Then the menu option that the mouse is
pointing to is considered to be a positive charge while the rest of the options
are taken to be negative charges. The mouse is a very negative charge. Then,
when the electromagnetic force is enforced between the charges the negative
charges push each other away while the one positive menu option is pulled
towards the mouse. However, some things are still up in the air.
We have two options:
1. the force
doesn't go directly between the charges but rather travels around the circle, so
the force varies not with the distance between two charges but with the
difference in their angles. The result would be all of the menu options would
pull away from the mouse (except the one that the user wanted) but wouldn't go
all the way around the circle because they'd be pushing away from each other. So
only one option would stay by the user's mouse while the rest would go away to
the other side of the circle. There are two difficulties though. One, the
difference between two angles can be measured clockwise or counter-clockwise. We
want the shortest difference of the two but now this is no longer straight
subtraction and thus we can't just use linear algebra (or something similar) to
solve the simultaneous equations. Two, the formula for the EM Force varies
inversely with the square of the distance between the two angles. But how do you
do multiplication with angles when 0 degrees=360 degrees=720 degrees but 0^2,
360^2 and 720^2 are not equal to each other? However those are solvable
problems.
2. The force travels in a straight line
between the charges and the center of the circle is considered a positive
charge. In this case all of the options are pushed away from the mouse but
pulled back by the center. The details of their behavior will depend on the
relative strengths of the charges at the mouse and the center. The problem with
this approach is that its a lot more chaotic because the menu options may get
propelled off the screen, may get bunched up in the center or do some of each
depending on where they are. We could partially solve this by enforcing minimum
and maximum radii that a menu option can assume but this promises to be a far
less intuitive interaction method.
Notice that because we made one menu option a positive charge,
we get the same behavior as in the Pie Menu interaction mechanism, where the menu option closest
to the mouse actually follows the mouse around, anticipating that it is the
option that the user wants.