Matlab仿真:点(符号)从起点移动到终点并返回
我想创建一个动画来演示基于 到目前为止,我已经创建了一个图形,显示符号节点(左)和奇偶节点(右)之间的连接,并希望为从符号到奇偶节点和从奇偶节点返回的点设置动画 通过执行以下方法绘制该图:Matlab仿真:点(符号)从起点移动到终点并返回,matlab,animation,Matlab,Animation,我想创建一个动画来演示基于 到目前为止,我已经创建了一个图形,显示符号节点(左)和奇偶节点(右)之间的连接,并希望为从符号到奇偶节点和从奇偶节点返回的点设置动画 通过执行以下方法绘制该图: function drawVertices(H) hold on; nodesCount = size(H); parityNodesCount = nodesCount(1); symbolNodesCount = nodesCount(2); symbolPoints = zeros(symbolNode
function drawVertices(H)
hold on;
nodesCount = size(H);
parityNodesCount = nodesCount(1);
symbolNodesCount = nodesCount(2);
symbolPoints = zeros(symbolNodesCount, 2);
symbolPoints(:, 1) = 0;
for i = 0 : symbolNodesCount - 1
ji = symbolNodesCount - i;
scatter(0, ji)
symbolPoints(i + 1, 2) = ji;
end;
parityPoints = zeros(parityNodesCount, 2);
parityPoints(:, 1) = 10;
for i = 0 : parityNodesCount - 1
ji = parityNodesCount - i;
y0 = symbolNodesCount/2 - parityNodesCount/2;
scatter(10, y0 + ji)
parityPoints(i + 1, 2) = y0 + ji;
end;
axis([-1 11 -1 symbolNodesCount + 2]);
axis off
%connect vertices
d = size(H);
for i = 1 : d(1)
for j = 1 : d(2)
if(H(i, j) == 1)
plot([parityPoints(i, 1) symbolPoints(j, 1)], [parityPoints(i, 2) symbolPoints(j, 2)]);
end;
end;
end;
因此,我想在这里添加另一种方法,它将起点(x和y)和终点作为参数,并沿显示的直线从起点到终点和从终点到终点的移动圆(点)设置动画
如果你们中的任何人能够展示解决方案或建议任何有关matlab仿真的有用教程,我将不胜感激
谢谢大家! 我认为最好的学习方法是以身作则。因此,我建议您看看MATLAB附带的演示
lorenz
:
edit lorenz
对于其他很酷的动画,请查看克里夫·摩尔书中的orbits.m
和swinger.m
demos部分:
我在这里展示了一个点沿圆形路径移动的简单动画。保留思想归结为使用
EraseMode
设置为xor
,并为每次迭代更新点的XData
和YData
:
%# coordinates
t = (0:.01:2*pi)'; %# 'fix SO syntax highlight
D = [cos(t) -sin(t)];
%# setup a figure and axis
hFig = figure('Backingstore','off', 'DoubleBuffer','on');
hAx = axes('Parent',hFig, 'XLim',[-1 1], 'YLim',[-1 1], ...
'Drawmode','fast', 'NextPlot','add');
axis(hAx, 'off','square')
%# draw circular path
line(D(:,1), D(:,2), 'Color',[.3 .3 .3], 'LineWidth',1);
%# initialize point
h = line('XData',D(1,1), 'YData',D(1,2), 'EraseMode','xor', ...
'Color','r', 'marker','.', 'MarkerSize',50);
%# init text
hTxt = text(0, 0, num2str(t(1)), 'FontSize',12, 'EraseMode','xor');
i=0;
while true
i = rem(i+1,numel(t)) + 1; %# circular increment
set(h,'XData',D(i,1), 'YData',D(i,2)) %# update X/Y data
set(hTxt,'String',num2str(t(i))) %# update angle text
drawnow %# force refresh
if ~ishandle(h), return; end %# in case you close the figure
end
有关所用参数的详细说明(EraseMode
,Backingstore
,DoubleBuffer
,…),请参阅
t = 0:.01:2*pi;
x = cos(2*t).*(cos(t).^2);
y = sin(2*t).*(sin(t).^2);
comet(x,y);