Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
回复
 
主题工具 显示模式
旧 2019-12-10, 20:42   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 动画多个椭圆

sRMatTemp = [SENSORRANGE]; sRMat = repmat(sRMatTemp, size(obj.landmarks.sensed(:,1), 1)); ellipse(((2*pi*sRMat)/(360/obj.landmarks.sensed(:,4))), obj.landmarks.sensed(:,5) , obj.landmarks.sensed(:,3), obj.landmarks.apparentPositionsST(:,1), obj.landmarks.apparentPositionsST(:,2)); 上面的代码工作正常...一次。问题是我需要设置动画。每次绘制椭圆时,它们都会留在我的屏幕上,并且该图立即变得不可读。

上面的代码也可以很好地用于动画散点图。有什么办法可以将它与椭圆结合使用吗?

我正在使用Mathworks社区站点上的ellipse.m。

fig=figure; axes('NextPlot','add'); set(fig, 'name', 'Animated Graph') l.st=scatter([0],[0],'g.'); set(l.st,'XData',obj.landmarks.apparentPositionsST(:,1),'YData',obj.landmarks.apparentPositionsST(:,2)); drawnow

回答:

您需要将EraseMode属性设置为xor以便在更新其X / Y数据时,它将删除其旧位置,然后重绘。确保您阅读了此动画指南

我写了一个简单的例子来说明动画椭圆。我正在使用上一个问题中关于SO的功能calculateEllipse.m

step = linspace(50,200,100); figure hAx = axes('XLim',[-250 250], 'YLim',[-250 250], ... 'Drawmode','fast', 'NextPlot','add'); axis(hAx, 'equal') p = calculateEllipse(0, 0, step(1), step(end), step(1)); hLine = line('XData',p(:,1), 'YData',p(:,2), 'EraseMode','xor', ... 'Color','r', 'LineWidth',3); for i=1:numel(step) p = calculateEllipse(0, 0, step(i), step(numel(step)-i+1), step(i)); set(hLine,'XData',p(:,1), 'YData',p(:,2)) %# update X/Y data pause(.05) %# slow down animation drawnow %# force refresh if ~ishandle(hLine), return; end %# in case you close the figure end



更多&回答...
poster 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 05:07


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.