📄 my_comet_strange_xy.m
字号:
function my_comet_strange_xy(x,y,p,time) %函数体参量表一定没有常数或代数式.x,y平面对应不同奇点的轨线彗星图
global X3 t
figure(9)
set(gcf,'unit','normalized','position',[0.31,0.53,0.64,0.35]);
set(gcf,'defaultuicontrolunits','normalized');
set(gcf,'defaultuicontrolfontsize',12);
set(gcf,'defaultuicontrolfontname','隶书');
str='平面对应不同奇点的轨线彗星图';
set(gcf,'name',str,'numbertitle','off');
h_axes=axes('position',[0.05,0.2,0.6,0.7]);
set(h_axes,'xlim',[-40,40],'ylim',[-40,40]);
if nargin == 0, error('Not enough input arguments.'); end
if nargin < 2, y = x; x = 1:length(y); end
if nargin < 3, p = 0.10; end
ax = newplot;
if ~ishold,
axis([min(x(isfinite(x))) max(x(isfinite(x))) ...
min(y(isfinite(y))) max(y(isfinite(y)))])
end
co = get(ax,'colororder');
if size(co,1)>=3,
% Choose first three colors for head, body, and tail
head = line('color',co(1,:),'marker','^','erase','xor', ...
'xdata',x(1),'ydata',y(1));
body = line('color',co(2,:),'linestyle','-','erase','none', ...
'xdata',[],'ydata',[]);
tail = line('color',co(3,:),'linestyle','-','erase','none', ...
'xdata',[],'ydata',[]);
else
% Choose first three colors for head, body, and tail
head = line('color',co(1,:),'marker','o','erase','xor', ...
'xdata',x(1),'ydata',y(1));
body = line('color',co(1,:),'linestyle','--','erase','none', ...
'xdata',[],'ydata',[]);
tail = line('color',co(1,:),'linestyle','-','erase','none', ...
'xdata',[],'ydata',[]);
end
m = length(x);
k = round(p*m);
% Grow the body
for i = 2:k+1
j = i-1:i;
set(head,'xdata',x(i),'ydata',y(i))
set(body,'xdata',x(j),'ydata',y(j))
pause(time)
drawnow
%开始时速度
end
% Primary loop
for i = k+2:m
j = i-1:i;
set(head,'xdata',x(i),'ydata',y(i))
set(body,'xdata',x(j),'ydata',y(j))
set(tail,'xdata',x(j-k),'ydata',y(j-k))
drawnow
pause(time) %连点速度
end
% Clean up the tail %刷新颜色
for i = m+1:m+k
j = i-1:i;
set(tail,'xdata',x(j-k),'ydata',y(j-k))
drawnow
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -