![]() |
在MATLAB中创建沿图形移动的点
我正在寻找在MATLAB中创建一个简单的[I]log(x)[/I]图,其中模型显示点随时间沿曲线移动的情况。
总体目标是使这些图中的两个相互并排,并对它们应用一种算法。我真的不确定从哪里开始。 我在MATLAB编码方面相对较新,因此任何帮助都将非常有用! 谢谢卢克 [B]回答:[/B] 这是[URL="https://stackoverflow.com/questions/4959528/creating-a-point-moving-along-a-graph-in-matlab/4959858#4959858"]@Jacob[/URL]解决方案的一个变体。无需在每个帧( clf )上重新绘制所有内容,我们只需更新该点的位置即可: %# control animation speed DELAY = 0.01; numPoints = 600; %# create data x = linspace(0,10,numPoints); y = log(x); %# plot graph figure('DoubleBuffer','on') %# no flickering plot(x,y, 'LineWidth',2), grid on xlabel('x'), ylabel('y'), title('y = log(x)') %# create moving point + coords text hLine = line('XData',x(1), 'YData',y(1), 'Color','r', ... 'Marker','o', 'MarkerSize',6, 'LineWidth',2); hTxt = text(x(1), y(1), sprintf('(%.3f,%.3f)',x(1),y(1)), ... 'Color',[0.2 0.2 0.2], 'FontSize',8, ... 'HorizontalAlignment','left', 'VerticalAlignment','top'); %# infinite loop i = 1; %# index while true %# update point & text set(hLine, 'XData',x(i), 'YData',y(i)) set(hTxt, 'Position',[x(i) y(i)], ... 'String',sprintf('(%.3f,%.3f)',[x(i) y(i)])) drawnow %# force refresh %#pause(DELAY) %# slow down animation i = rem(i+1,numPoints)+1; %# circular increment if ~ishandle(hLine), break; end %# in case you close the figure end [IMG]https://i.stack.imgur.com/DW8vx.png[/IMG] [url=https://stackoverflow.com/questions/4959528]更多&回答...[/url] |
所有时间均为北京时间。现在的时间是 04:51。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.