- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
在 matlab 中,如果我有一个数组,即第一列是时间,另外两列是坐标的矩阵,如果我绘制它:
ti=myarray(:,1);
xi=myarray(:,2);
yi=myarray(:,3);
for i=1:length(ti)
plot(xi(i),yi(i));hold on;
Mov(i)=getframe;
end
这统一记录了我的电影。当我玩的时候
movie(Mov,1,20)
它假设帧是等时分布的。
我可以制作一个情节让电影在它指定的时间播放吗?
请注意,如果可能,pause
对我来说可能不是一个选项。系统时间慢(10ms
精度)。结合 matlab 的缓慢处理和系统时间的低精度会产生不良结果。另请注意,我的 fps
可以高于 100
。但如果这能实现,我欢迎。
最佳答案
要创建可变帧率电影,您可以使用我的 QTWriter类(class)。这是一个简单易用的类文件,灵感来自 Matlab 的 VideoWriter。允许以适合 Matlab 样式图形的多种格式本地导出 QuickTime 编码电影的类。不需要其他任何东西,甚至不需要 QuickTime(除非您想播放输出文件)。值得注意的是,它支持 Quicktime 连续改变帧速率的能力。
这里有一些示例代码可以生成类似于 this QuickTime movie 的电影:
% Prepare new movie file using the default PNG compression
movObj = QTWriter('peaks.mov');
% Create an animation
hf = figure; Z = peaks; surfc(Z); frames = 100;
axis tight; set(gca,'nextplot','replacechildren');
% Animate plot and write movie
for k = 0:frames
surfc(sin(2*pi*k/frames)*Z,Z);
% Vary the frame-rate
movObj.FrameRate = k;
% Write each frame to the file
writeMovie(movObj,getframe(hf));
end
% Finish writing movie and close file
close(movObj);
在 Matlab 中,可以使用 Matlab 的 VideoReader
播放可变帧率的 QuickTime 电影。通过将 readerobj.FrameRate
传递给 movie
类(我不确定在 Windows/Linux 上是否如此)功能。如果您将输出电影转换为另一种容器格式(例如 AVI)或不支持可变帧率的编解码器(或者如果您的转换软件不支持),那么您需要将转换后电影的帧率设置为最高QuickTime 文件中的帧率。这很可能会导致更大的文件 - 人们可以认为或可变帧率电影是临时压缩的(有点像帧间压缩)。
帧率参数没有无限分辨率和范围,因此可能还需要调整 'TimeScale'
参数。根据用户硬件、解码的计算成本和数据速率,任何电影都可能难以以高帧率播放。通常,玩家只会掉帧。 QTWriter
还有一个 'PlayAllFrames'
选项强制 QuickTime Player 渲染每一帧 - 然而这可能会导致非实时播放。或者,可以选择“Photo TIFF”压缩类型,这种压缩类型的解码速度更快,但文件大小稍大一些。
代码是开源的 (BSD),托管于 Github ,我欢迎贡献者。还有很大的优化和改进空间。您可以在 project webpage 上看到另一个示例和生成的电影。 .
关于matlab - Matlab 中的可变帧率动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17550038/
为什么禁用类型像 type t = A of int | B of string * mutable int 虽然允许此类类型: type t = A of int | B of string * i
我正在寻找一种类似结构的数据结构,我可以从中创建多个实例并具有某种类型提示而不是不可变的。 所以我有这样的东西: class ConnectionConfig(NamedTuple): nam
我需要转到引用的结构: class SearchKnot { var isWord : Bool = false var text : String = "" var to
如sec 10.4.3中所述 当控制进入执行时,执行以下步骤 功能对象F(调用者)中包含的功能代码的上下文 提供thisArg,而调用方提供argumentsList: 如
i make a game that start display Activity indicator And activity indicator bottom display UiLable wi
编辑:我在这里不断获得支持。只是为了记录,我认为这不再重要。自从我发布它以来我就不再需要它了。 我想在 Scala 中执行以下操作... def save(srcPath: String, destP
使用可变对象作为 Hashmap 键是一种不好的做法吗?当您尝试使用已修改足以更改其哈希码的键从 HashMap 中检索值时,会发生什么? 例如,给定 class Key { int a; /
如果您在Kotlin中访问List类型的Java值,则将获得(Mutable)List!类型。 例如。: Java代码: public class Example { public stati
我编写了 str 类(内置)的以下扩展,以便执行以下操作:假设我有字符串 "Ciao" ,通过做"Ciao" - "a"我想要的结果是字符串 "Cio" 。这是执行此操作的代码,并且运行良好: cla
使用可变对象作为 Hashmap 键是一种不好的做法吗?当您尝试使用已修改足以更改其哈希码的键从 HashMap 中检索值时,会发生什么? 例如,给定 class Key { int a; /
我正在为我的公司设计一个数据库来管理商业贷款。每笔贷款都可以有担保人,可以是个人或公司,在借款业务失败时作为财务支持。 我有 3 个表:Loan、Person 和 Company,它们存储明显的信息。
我使用二进制序列化从 C# 类中保存 F# 记录。一切正常: F#: type GameState = { LevelStatus : LevelStatus
import javax.swing.JOptionPane; public class HW { public static void main(String[] args) { Strin
使用 flatbuffer mutable 有多少性能损失? 是否“正确”使用 FlatBuffers 来拥有一个应该可编辑的对象/结构(即游戏状态) 在我的示例中,我现在有以下类: class Ga
std::function create_function (args...) { int x = initial_value (args...); return [x] () mut
我需要在 for 循环中找到用户输入的字符。我通常会这样做 如果(句子[i] == 'e') 但是因为在这里,'e' 将是一个单字母字符变量,我不知道如何获取要比较的值。我不能只输入 if (sent
我有一个这样的算法: let seed: Foo = ... let mut stack: Vec = Vec::new(); stack.push(&seed); while let Some(ne
这个问题可能看起来非常基础,但我很难弄清楚如何做。我有一个整数,我需要使用 for 循环来循环整数次。 首先,我尝试了—— fn main() { let number = 10; // An
如果我有以下结构: struct MyStruct { tuple: (i32, i32) }; 以及以下函数: // This will not compile fn function(&mut s
我希望在每个 session 的基础上指定列的默认值。下面的脚本不起作用,但描述了我想如何使用它。我目前使用的是 MySQL 5.5.28,但如果需要可以升级。 CREATE TABLE my_tbl
我是一名优秀的程序员,十分优秀!