LOCKPOINTER: Add this to a listener for a figure's 'WindowMouseMotion'
event to lock the cursor horizontally or vertically.
Syntax: setPointer(xp, axis)
xp: pointer pixel position of format [x, y]
axis: 'x' to lock to vertical line (locks x position)
'y' to lock to horizontal line (locks y position)
fig = figure;
ax = axes;
[xx(2), yy(2)] = ginput(1);
x_p = get(0, 'PointerLocation');
% other code here
hL = addlistener(fig,'WindowMouseMotion', @(x, y) lockPointer(x_p, 'x'));
[xx(1), yy(1)] = ginput(1);
Author: Marc Jakobi, 07. February 2017
Note: If somebody has a tip for a significant performance improvement to make the above example less jittery, please let me know. Leaving out the strcmp(axes) check does not make a noticeable difference on my machine.
Marc Jakobi (2019). lockPointer (https://www.mathworks.com/matlabcentral/fileexchange/61469-lockpointer), MATLAB Central File Exchange. Retrieved .