我想在图片上画一条线,但它只画45度角的线条。线似乎只对x坐标变化做出反应。
function demoOnImageClick
clc;clear;close all;
imObj = rand(500)
figure;
hAxes = axes();
imageHandle = imshow(imObj);
set(imageHandle,'ButtonDownFcn',@ImageClickCallback);
function ImageClickCallback ( objectHandle , eventData )
axesHandle = get(objectHandle,'Parent');
coordinates = get(axesHandle,'CurrentPoint');
coordinates = coordinates(1,1:2);
line([0 coordinates (1)], [0 coordinates (2)]);
message = sprintf('x: %.1f , y: %.1f',coordinates (1) ,coordinates (2));
helpdlg(message);
end
end
答案 0 :(得分:2)
删除坐标和索引之间的空格似乎可以解决问题。
line([0 coordinates(1)], [0 coordinates(2)]);
我相信你的代码,MATLAB画了两行:第一行从(0,0)到(坐标,坐标),它只使用第一个x值,然后第二行来自(坐标,坐标)到(1,2)。
希望这有帮助!