Free hand drawing in Matlab with output is XY coordinate of trajectory.

26 次查看(过去 30 天)
How i can free draw any trajcetory with the output is the XY coordinate of trajectory like in the picture. I just try to find in the answer in form but did no find any answers satisfiing the requirement. Tks you for any answer. 2.png

采纳的回答

Adam Danz
Adam Danz 2018-11-14
编辑:Adam Danz 2018-11-14
This might be what you're looking for. ginput() allows you to click on a graph as many times as you'd like and it returns a 2-column matrix of x,y coordnates where you clicked.
Demo 1
Run this, click around the axes, press Enter to see where you clicked. xy will be the coordinate of your clicks.
figure
xy = ginput(); % now click as many coordinates as you'd like then press Enter when finished.
plot(xy(:,1), xy(:,2), 'bo', 'MarkerSize', 8, 'MarkerFaceColor', 'b');
Demo 2
This version plots as you click instead of plotting at the end. Press Enter to stop. xy will be the coordinate of your most recent click.
figure
axh = axes;
hold(axh, 'on')
xy = [0,0];
while ~isempty(xy)
xy = ginput(1);
if ~isempty(xy)
plot(axh, xy(1), xy(2), 'bo', 'MarkerSize', 8, 'MarkerFaceColor', 'b');
end
end

更多回答(1 个)

Peter Seibold
Peter Seibold 2023-8-29
Another demo that stores the xy values:
disp('click inside figure')
disp('hit "return" button to finish')
figure(1)
clf
axh = axes;
hold(axh, 'on')
xlim([0,2])% change the limits to your requirements
ylim([0,1])% change the limits to your requirements
grid on
xyTemp = [0,0];
xy=xyTemp;
k=0;
while ~isempty(xyTemp)
xyTemp = ginput(1);
if ~isempty(xyTemp)
plot(axh, xyTemp(1), xyTemp(2), 'bo', 'MarkerSize', 6, 'MarkerFaceColor', 'b');
k=k+1;
xy(k,:)=xyTemp;
end
end
hold(axh, 'off')
figure(2)
plot(xy(:,1),xy(:,2),'.-b')
grid on
disp('finished')
disp('Previous to a second run you may resize the figure to your requirements')

类别

Help CenterFile Exchange 中查找有关 Graphics Object Properties 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by