2015-06-06 3 views
0

Я хочу нарисовать линию на картинке, но она только рисует линию под углом 45 градусов. Кажется, что линия реагирует только при изменении координат х.Как нарисовать линию на изображении в Matlab?

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 

ответ

2

Устранение пробелов между координатами и индексами, похоже, делает трюк.

line([0 coordinates(1)], [0 coordinates(2)]); 

Я считаю, что с вашим кодом, MATLAB рисует две линии: первый от (0,0) до (координаты, координаты), где он использует только первый х-значение, а затем вторая линия от (координаты, координаты) к (1,2).

Надеюсь, это поможет!

Смежные вопросы