Edge following cursor
Original Publication Date: 2004-Sep-07
Included in the Prior Art Database: 2004-Sep-07
Disclosed is a mechanism for biasing cursor movement to follow the edges of 'fuzzy' graphical objects (such as photographs). This permits fast cursor movement along an edge, with fine control orthogonal to the edge. The effect is automatically modulated by edge strength; cursor movement is unbiased where the cursor is not near any edge. The disclosure is in two parts. The first describes the general principle and the second gives a fragments of sample code for more precise detail.
Edge following cursor
Paint packages (and similar more up-market application packages for medical imaging etc) frequently include semi-interactive edge detection techniques. These are typically used for region/mask selection.
As an example, see Paint Shop Pro* 8: Freehand Selection Tool, Smart Edge or Edge Seeker options.
In summary, the user clicks at various points along the edge, and the system tracks the edge between these points.
There are two possible options the system may take where the user does not
click on an edge.
1) The system takes the user point, and does its best to track an edge that goes through it. (Paint Shop Pro option)
2) The system finds the nearest point it thinks is an appropriate edge and tracks to it.
1) has the disadvantage that the user must make sure that every click is precisely on an edge, or the result will not be precise. This precision slows the user down.
2) has the disadvantage that the user loses precise control.
The solution is that the cursor should be biased but not constrained to track what the system thinks is the edge (system preguessed edge).
For the purpose of discussion a mouse is the interaction device. The technique also applies to a tablet (used in relative mode for this operation) or other interaction device.
A essential part of the mechanism is that the system controls the relationship between mouse movement and cursor movement: the discussion will (try to) be precise below in the distinction between these two.
Mouse movements that would normally cause the cursor to move almost along the system detected edge are forced into cursor movements precisely along the system detected edge. Thus the user can make a very quick mouse movement in the general direction of the preguessed edge, and the cursor will precisely track that edge. This gives the speed of method (2) above where the user and system agree where the edge should be.
Where the mouse moves in a direction not close to the preguessed edge direction, the cursor moves in the corresponding direction. This makes it easy for the user to apply the fine control of method (1) above.
A typical user movement will be a fast movement along the edge to approximately the right position on the system preguessed edge, followed by a precise movement approximately orthogonal to that to fix the finely controlled position. This user selected fine position will be used by the system to determine a final edge.
It is desirable that for movement (approximately) along the edge a standard ratio of mouse::pointer speed be used (for fairly quick movement). For movement orthogonal to the edge, the pointer should move much more slowly relative to the mouse (for fine control).
Fig 1 -- shows relationship between mouse and cursor movement. Exaggerated: typically, the mouse movement would be closer to the edge, and the cursor movement would be imperceptible from the edge.
One example of an algorithm f...