think-cell technical report TC2003/01 A GUI-based Interaction ...
think-cell technical report TC2003/01 A GUI-based Interaction ...
think-cell technical report TC2003/01 A GUI-based Interaction ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
4.3 Specifying the User Interface INTERACTION CONCEPT<br />
composition is snapped to the regular grid or to other shapes, or is simply moved<br />
pixelwise. In any case, all sizes, proportions and relations of the participating shapes<br />
remain untouched.<br />
The original PowerPoint paste operation doesn’t allow the user to specify the<br />
paste location. Objects from the clipboard are inserted at a default location: Shapes<br />
that stem from a different slide are inserted at their original location while shapes<br />
that originate on the same slide are placed with a little offset to the right and to<br />
the bottom.<br />
For insertion into the smart grid I decided that move and paste should appear<br />
similar to the user: In both cases, a shadow is attached to the mouse cursor that<br />
can be placed with a single click. The shadow indicates where each of the selected<br />
elements would go. This approach is much more appropriate for the smart grid than<br />
the original PowerPoint usage of move and paste, because it allows the elements<br />
to snap to existing gridlines, thus implicitly ensuring alignment with the existing<br />
layout.<br />
In my prototype, a dynamic programming algorithm is used to determine the<br />
optimal placement of multiple elements. The mouse cursor is assumed to be at<br />
the upper left corner of the elements’ bounding box. Based on the mouse cursor<br />
location, each element is bound to appropriate gridlines, if there are any. To achieve<br />
an optimal insertion, elements may be stretched and shrunk. The cost function of<br />
the dynamic programming algorithm ensures that gridlines are matched without<br />
too much distortion of the elements.<br />
Figure 27 shows an example of a composition of elements being moved (or cut<br />
and pasted) together. Thanks to snapping, a somewhat sloppy mouse cursor move-<br />
ment is tolerated. Since the moving elements are of the same types as the shapes<br />
next to the intended placement, there is a very strong preference to match those<br />
shapes’ gridlines. After the insertion, the solver rearranges the smart grid in order<br />
to accommodate for the required size of the inserted elements. The screenshots are<br />
taken from my prototype, but are manually arranged to simulate the behavior of<br />
the solver.<br />
(a) User interaction . . . (b) . . . and the resulting layout (after update<br />
by solver)<br />
Figure 27: When multiple elements are inserted, a dynamic programming approach<br />
ensures optimal fit into an existing layout.<br />
59