[已解决] 求助画的空间动态图,如何不保留之前的轨迹

[复制链接]
longinghzx 发表于 2022-5-7 19:26:36
本人画了一个空间的扫描轨迹,红色代表扫描的斜边,绿色为扫描的轨迹。现在求助如何始终只存在一条红色线,下面绿色的轨迹线保留。代码如下:
clear all;
clc;
close all;
w=8*pi;%角速度
v=10;%下落速度为10m/s
%下落高度 130-20
%探测角是30度
%斜距是150 75
%1!!!画动态螺旋曲线%%
%
z = peaks(0);
surf(z)
hold on
t=linspace(13,0,1000);
x=v*t.*cos(w*t);
y=v*t.*sin(w*t);
z=v*t;
h1=animatedline;
h2=animatedline('color', 'g');
h1.Color = 'r';
h1.LineWidth = 1.0;
h1.LineStyle = '-';
axis([-150,150,-150,150]);
title('扫描轨迹');
for i = 2:length(t)
% addpoints(h1,x(i),y(i),z(i));
a=[x(i),y(i),0];
quiver3(0,0,z(i),x(i),y(i),-z(i),0,'ShowArrowHead','off','Color','r');
addpoints(h2,x(i),y(i),0);
pause(0.02);
drawnow
%hold on;
end
%hold off;

附件上是目前的图,希望在扫描过程中始终只存在一条红色斜边。
6d4cdb28edeaab2e32943d9209eeb4d.png

最佳答案


20141303 发表于 2022-5-7 20:02:31
仅供参考
  1. clear all;
  2. clc;
  3. close all;
  4. w=8*pi;%角速度
  5. v=10;%下落速度为10m/s
  6. %下落高度 130-20
  7. %探测角是30度
  8. %斜距是150 75
  9. %1!!!画动态螺旋曲线%%
  10. %
  11. z = peaks(0);
  12. surf(z)
  13. hold on
  14. t=linspace(13,0,1000);
  15. x=v*t.*cos(w*t);
  16. y=v*t.*sin(w*t);
  17. z=v*t;
  18. h1=animatedline;
  19. h2=animatedline('color', 'g');
  20. h1.Color = 'r';
  21. h1.LineWidth = 1.0;
  22. h1.LineStyle = '-';
  23. axis([-150,150,-150,150]);
  24. title('扫描轨迹');
  25. for i = 2:length(t)
  26. % addpoints(h1,x(i),y(i),z(i));
  27. a=[x(i),y(i),0];

  28. h(i)=quiver3(0,0,z(i),x(i),y(i),-z(i),0,'ShowArrowHead','off','Color','r');
  29. delete(h(i-1))
  30. addpoints(h2,x(i),y(i),0);
  31. pause(0.02);
  32. drawnow
  33. end
复制代码
回复此楼

1 条回复


20141303 发表于 2022-5-7 20:02:31
仅供参考
  1. clear all;
  2. clc;
  3. close all;
  4. w=8*pi;%角速度
  5. v=10;%下落速度为10m/s
  6. %下落高度 130-20
  7. %探测角是30度
  8. %斜距是150 75
  9. %1!!!画动态螺旋曲线%%
  10. %
  11. z = peaks(0);
  12. surf(z)
  13. hold on
  14. t=linspace(13,0,1000);
  15. x=v*t.*cos(w*t);
  16. y=v*t.*sin(w*t);
  17. z=v*t;
  18. h1=animatedline;
  19. h2=animatedline('color', 'g');
  20. h1.Color = 'r';
  21. h1.LineWidth = 1.0;
  22. h1.LineStyle = '-';
  23. axis([-150,150,-150,150]);
  24. title('扫描轨迹');
  25. for i = 2:length(t)
  26. % addpoints(h1,x(i),y(i),z(i));
  27. a=[x(i),y(i),0];

  28. h(i)=quiver3(0,0,z(i),x(i),y(i),-z(i),0,'ShowArrowHead','off','Color','r');
  29. delete(h(i-1))
  30. addpoints(h2,x(i),y(i),0);
  31. pause(0.02);
  32. drawnow
  33. end
复制代码
回复此楼
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表