필터 지우기
필터 지우기

how to force Draggable points to move along a line?

조회 수: 6 (최근 30일)
Mohsen  Davarynejad
Mohsen Davarynejad 2013년 5월 14일
답변: Roman Willi 2018년 7월 2일
Hi All. I would like to use impoint to generate a draggable point. But I want to force it to move along a line. I try to do so by setPosition, but it does not work properly. Any help?
function test()
h1 = impoint(gca,[5, 5])
setString(h1,'h1');
addNewPositionCallback(h1,@(h1) CallThis(1,[1 2],[ 2 ]));
axis([0 10 0 10])
function CallThis(varargin)
pos = h1.getPosition()
h1.setPosition([pos(1,1), 2*pos(1,1)])
end
end
  댓글 수: 2
Jan
Jan 2013년 5월 14일
"It does not work properly" is a vague description only. Please do not let us guess, but explain the difference between your expectations and the results.
Mohsen  Davarynejad
Mohsen Davarynejad 2013년 5월 14일
Sure, I mean that the point moves freely. It does not move along the line. Basically the setPosition command within the CallThis function does not update the position of the point.

댓글을 달려면 로그인하십시오.

답변 (1개)

Roman Willi
Roman Willi 2018년 7월 2일
move along a line:
obj.dragPoint = impoint();
hp = addNewPositionCallback(obj.dragPoint,@(pos) point_move(obj,pos));
function point_move(obj, pos)
pos = [.....] % Calc Y Point of line
axilim = [.....] % X axi limit
fcn = makeConstrainToRectFcn('impoint',axilim, [pos pos]);
setPositionConstraintFcn(obj.dragPoint, fcn);
end

카테고리

Help CenterFile Exchange에서 Interpolation에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by