GUI - axis of rotation
|Opened by:||agua carbonatada|
|Opened on:||Friday, December 2, 2011 - 16:50|
|Last modified:||Friday, December 2, 2011 - 16:50|
Rotation of the molecule is performed by dragging the mouse with the left button. The axis of rotation is the segment last marked by pressing the "Q" key while the pointer hovered over it. If no segment is marked ("Q" pressed with the mouse over the background), the centroid of the molecule is used for the axis.
Effective use of rotation depends of the user knowing to mark a segment with "Q", or else constant awareness of the location of the centroid (which is sometimes off-screen). Without this knowledge, rotation is difficult, particularly at closer zoom levels. This quickly frustrates new users, as the mouse control appears to be non-intuitive.
There is no simple way to correct the "hard" rotations, when the molecule's centroid would used as the axis. The X and Y coordinates of the axis of rotation could easily be the middle of screen, but the difficulty lies in determining a suitable Z coordinate. Using the centroid of only "visible parts" of the molecule to determine a Z coordinate is problematic when a significant amount lies in the distant background. The solution would be to determine Z using the weighted average of the visible areas (more simply, weight by the inverse square of distance of visible parts from the viewer).
In summary, I suggest trying these two alternative implementations, only for the case of rotations not centered on a segment, and testing them with both experienced and novice users.
Option 1) Don't rotate at all when a segment is not selected. Fade a hovering message about selecting a segment with the mouse and Q key. This would sacrifice some potentially useful control for experienced users, for the benefit of novice users.
Option 2) Try rotations using screen-centered X & Y with inverse-square distance-weighted Z coordinate for the axis of rotation. This weights the axis to foreground objects, likely what the user is trying to see from a different point of view.