本着“用到什么学什么”和“阅读代码哪里没看懂学哪里”的原则进行记录
1、rectangle()函数:画四个角能够“倒角”的矩形,甚至是圆。
(Create rectangle with sharp or curved corners) 详见:matlab帮助
2、画动态曲线
问题来源:RRT算法的动态演示,引申到画动态曲线。
解决办法:(1)已知曲线,利用循环遍历曲线上的点
例子:https://www.cnblogs.com/wsy950409/p/12951527.html
(2)利用动画帧getframe函数
例子:https://blog.csdn.net/lingyunxianhe/article/details/77857317
(3)在画图循环中加入pause
例子:https://www.ilovematlab.cn/thread-261081-1-1.html
问题本质:都是利用循环完成
%%利用对象animatedline编程,addpoint是此对象专用函数 % h = animatedline; % axis([0 4*pi -1 1]) % x = linspace(0,4*pi,2000); % % for k = 1:length(x) % y = sin(x(k)); % addpoints(h,x(k),y); % drawnow % end % 或者 % 第一步,先表示出静态图 % 第二步,循环来画出更新后的图像,用set()来更新数据,用drawnow来更新图像 x= 0:pi/50:2*pi; y=sin(x); h=plot(x,y) while true x=x+0.1; y=sin(x); set(h,'XData',x,'YData',y); drawnow; end %% 想实现的例子 % A = (1,1) ; B = (3,4) ; C = (7,9) ;D = (7,8) % x = [1 3 4 7 9] % y = [1 4 9 8 10] % plot(x,y) % F = getframe; % figure % imshow(F.cdata) %%用pause时间延迟函数 % figure % hold on % x = [1 3 4 7 9] % y = [1 4 9 8 10] % for i=2:5 % plot(x(i-1:i),y(i-1:i),'r');pause(0.5); % end %%利用动画帧数 % clc; % close all; % x1=0;s=0.2;%确定起始点和增量 % nframes=50;%确定总动画帧数 % for k=1:nframes % x1=x1+s;%确定画图时的横坐标终止值x1 % x=0:0.01:x1; % y=sin(x); % plot(x,y); % axis([0 2*pi -1.2 1.2]);%坐标轴的范围 % m(k)=getframe;%将当前图形存入矩阵m中 % end % movie(m,3)
Dynamic_drawing.txt <注>:m文件不能作为附件上传,将后缀改成.m运行
文章评论