带动画的实时脚本

Posted

技术标签:

【中文标题】带动画的实时脚本【英文标题】:Live Script with animation 【发布时间】:2017-01-06 22:50:08 【问题描述】:

MATLAB 2016a 引入了Live Scripts,允许在脚本旁边显示绘图输出。是否可以以某种方式显示动画?比如下面的正则脚本代码会绘制几个点然后旋转axes

x = rand(10, 3);
plot3(x(:, 1), x(:, 2), x(:, 3), 'o')
for ii = 1:360
    camorbit(1, 10*cos(ii/90*pi)*pi/45)
    drawnow
    pause(0.01)
end

如果这嵌入在实时脚本中,则会显示初始绘图,然后在循环运行时似乎没有任何反应,然后最后一个方面(与原始绘图相同)显示在新的显示项中。

或者,是否有与实时脚本中的图进行交互的选项(除了双击以在新图中打开图)?例如。 rotate3d 没有效果。

编辑:从 2019a 版开始,可以按照 release notes 制作动画。

【问题讨论】:

我没有 matlab 2016 来尝试这个,但你可以尝试一些事情:1)在旧的发布者中,如果你想要快照,你必须使用 snapnow 而不是 drawnow在出版商。如果 Live Scripts 从发布者那里借用了代码,那么这可能值得一试。 2) 如果您创建一个实际的电影对象而不是 for 循环并使用 movie 命令播放它,则可能会设置 LiveScript 以正确解释它。 3) 如果 LiveScript 是正确的基于 html 的,那么它可能支持动画 gif;使用imwrite 和单个帧创建一个。 (如果上述任何一项工作,请告诉我。:)) @TasosPapastylianou 感谢您的 cmets...1) 不起作用,2) movie 只显示最后一帧,3) 没有尝试过动画 gif。这是最后的手段:) 我感觉这得等到 2016b.. 实时脚本不允许与绘图交互。我可以想到一个将 .gif 嵌入到 .html 导出的实时脚本中的解决方案。如果这有任何帮助,我可以提供解决方案,但建议向 mathworks 提交功能请求。 在一个稍微相关的注释中,introduced in R2016b 是实时编辑器图形输出的缩放/平移/旋转。它还不是程序化的(至少是公开的),但它正在朝着有用的方向发展。 【参考方案1】:

问题中发布的示例代码从 MATLAB 2019a 开始生成一个旋转图。它在 2018b 中还不起作用。 2019a 的 release notes 提到了

您可以在实时编辑器中启用 for 循环动画以显示更改 在随时间绘制的数据中。要在实时编辑器中启用动画, 将matlab.editor.AllowFigureAnimations 设置为true

s = settings;
s.matlab.editor.AllowFigureAnimation.PersonalValue = true;

在示例脚本之前运行这两行将产生预期的行为。

【讨论】:

【参考方案2】:

2016b 版添加了操作axes 的选项,当将鼠标悬停在axes 上时会出现控件。请注意,这不适用于不可见的axes (Visible='off')。相反,必须隐藏标尺和背景:

ax = axes;
x = rand(9, 3);
plot3(ax,x(:, 1), x(:, 2), x(:, 3), 'x'); 
% Hide rulers and background color
ax.Color = [1 1 1 0]; 
ax.XAxis.Visible ='off'; 
ax.YAxis.Visible ='off'; 
ax.ZAxis.Visible ='off';

subplot 排列的轴也可以单独操作。

【讨论】:

【参考方案3】:

似乎答案是否定的 - Live Scripts 还太年轻,还不能提供丰富的功能。仅凭它们不可调试的事实就可以让我远离它们 1-2 个版本。 你看过Matlab Notebooks吗?如果您追求漂亮的格式和一些基本的交互性,这可能就是您所寻求的。

【讨论】:

如果我没记错的话,笔记本只有 Windows? 仅限 MS-word。您的目标是什么操作系统? 刚刚检查,它是Windows only。我希望它可以在 Windows 和 Mac 上运行,最好是在 Linux 上运行。 好的,抱歉我不能提供更好的答案。

以上是关于带动画的实时脚本的主要内容,如果未能解决你的问题,请参考以下文章

在Unity中使用不带动画的动画制作多个精灵

求助,unity4.6版本怎么给带动画的模型做淡入淡出效果

Blackberry - 带动画的加载/等待屏幕

带动画的 CSS 下拉菜单(无 js)

jQuery之动画

在线急等,关于网页中如何通过threejs 导入带动画的模型