求用matlab制作简单动画实例

作者&投稿:关栏 (若有异议请与网页底部的电邮联系)
用Matlab制作一个三维图形和一个动画,简单的就可以~

动画
s =0.2; x1=0; % 确定起始点横坐标x1及其增量
nframes = 50; % 确定动画总帧数
for k = 1:nframes
x1= x1+s; % 确定画图时横坐标终止值x1
x =0:0.01:x1; y =sin(x);
plot(x,y); % 在x=[0 x1]作y=sin(x)曲线
axis([0 2*pi -1 1]) % 定义坐标轴范围
grid off % 不显示网格线
M(k) = getframe; % 将当前图形存入矩阵M(k)
end
movie(M,3) % 重复3次播放动画M
三维图网上很多的,你自己再找一个吧

用matlab制作动画的主要函数是getframe(捕捉轴或图形作为电影帧),movie(播放录制的电影帧)。
给你一个实例(匀强电场),以帮助你理解。
t=0:0.01:6*pi;
v0x=1;v0y=1;
a1=1;
y1=v0y*t+0.5*a1*t.*t;
x1=v0x*t;
for i=1:length(t)
plot(x1(1:i),y1(1:i))
axis([0,20,0,200])
grid on,hold on
plot(x1(i),y1(i),'r.','markersize',20)
title('匀强电场')
xlabel('x'),ylabel('y')
M(i)=getframe;
end
movie(M,1)
运行过程及结果


具体制作方法如下:

1、首先,这里举例代码如下:

x=-8:0.5:8;

[XX,YY]=meshgrid(x);

r=sqrt(XX.^2+YY.^2)+eps;

Z=sin(r)./r;

surf(Z);

生成了一幅静态的surf图片,XX,YY由meshgrid生成。

2、下面输入

theAxes=axis;,

右侧可以看到,theAxes=[0,40,0,40,-0.5,1],这是surf函数生成的,因为上面绘制的surf没有使用surf(XX,YY,Z)所以坐标范围不同,但是无论什么坐标范围,这里都先取出来,存到一个变量中,后面备用。

3、fmat=moviein(20);

将fmat保存为一个moviein结构体,20表示动画有20帧。

4、输入:

for j=1:20;

surf(sin(2*pi*j/20)*Z,Z)

axis(theAxes)

fmat(:,j)=getframe;

end

这里就是分别画每一帧的图像,此处我们的surf是分20份来画,坐标轴统一为之前的保存的坐标轴,把moviein结构体fmat的取为getframe,如图。

5、movie(fmat,10);就是动画放10遍。

6、全代码如下:

x=-8:0.5:8;

[XX,YY]=meshgrid(x);

r=sqrt(XX.^2+YY.^2)+eps;

Z=sin(r)./r;

surf(Z);

theAxes=axis;

fmat=moviein(20);

for j=1:20;

surf(sin(2*pi*j/20)*Z,Z)

axis(theAxes)

fmat(:,j)=getframe;

end

movie(fmat,10)



Speed = 1; %数字越大越快
W = ones(40);
B = zeros(40);
P1 = [B W];
P1 = repmat(P1,1,10);
P2 = [W B];
P2 = repmat(P2,1,10);
P = [P1;P2];
P = repmat(P,8,1);
imshow(P)
drawnow;
pause(2/Speed);
f = 1;
tic;
while f
    t = toc;
    if t >= 30
        f = 0;
    end
    Pn = P;
    Pn(P==1) = rand(1);
    Pn(P==0) = rand(1);
    Pn(1,1) = 1;
    imagesc(Pn); axis equal; colormap jet;
    drawnow;
    pause(2/Speed);
end

看看满意不




matlab如何制作黑底白字图片
matlab在页面背景中制作黑底白字图片。在预设中的点击颜色,选择取消勾选使用系统颜色,调节文本颜色为浅色,背景色为深色,点击显示,勾选突出显示当前行,调整颜色为深色,以更好显示浅色字体,调整后即可。

matlab中如何导出动画
1、首先打开电脑上的“matlab”软件,此处以下图中的代码为例,绘制出一个三维图像。meshgrid函数用于生成网格点。可以使用自己喜欢的例子来制作动画。2、下面点击回车键,代码运行后,绘制出的三维图像。3、输入命令theAxes=axis;在工作区可以看到theAxes=[0,50,0,60,-0.5,1],是surf函数生成的。4...

三维坐标怎么画图-如何使用matlab画三维坐标系
三维坐标系怎么画 首先水平画一条X轴,然后以X轴的顶点绕X轴逆时针旋转120度画一条Z轴,然后再以Z轴的顶点绕Z轴逆时针旋转120度画一条Y轴,这样一个三维坐标系就画好了 如何使用matlab画三维坐标系 1、首先双击matlab软件图标,使用语句:x=0:0.2:7*pi;创建一个一维数组,表示三维离散序列图的在x...

matlab给输出的txt文件加表头
通过MATLAB命令加表头。1、创建空白的GUI在MATLAB命令行中输入guide,新建GUI。2、选择BlankGUI(Default),点击确定后就生成了一个空白的GUI制作界面。3、输入MATLAB命令就可以加表头了。MATLAB之于人工智能,设计人工智能模型与人工智能驱动的系统分析数据、开发算法、创建数学模型,运行仿真、生成代码、测试...

matlab GUI 如何制作选项卡?
1、首先下载一个工具包,里面应该有四个文件:tabselectionfcp.p、tabselectionfcn.m、tabpanel.p和tabpanel.m,显然代码用.p格式进行加密了。2、建立一个空GUI文件,就起名kong.fig。3、在kong.fig上画一个Static Text,默认的tag为text1。4、终端运行tabpanel('kong.fig','text1');命令,得到...

请问如何用matlab制作一个自定义的工具箱,求具体步骤?
工具箱就是函数的集合吧,没有啥特殊的。把函数文件全部放到一个文件夹里,那后将该文件夹拷贝到matlab的toolbox文件夹下(在matlab安装路径中找),最后将该文件夹路径添加到matlab路径中(手动的话在preferens里设置,命令的话用addpath),就可以在任意位置使用这些函数了。

如何用matlab制作计算器
gui编程界面实现:1、界面设计。可以选择button按钮代表不同的数字0-9,+,-,*,\/,=,C,OFF等符号。用一个文本按钮来保存你输入的操作。2、写代码。添加相应的回调函数代码 这个还是比较简单和基础的

谁有MATLAB绘图大全啊
为了保证图像的显示效果,一般还应使用colormap函数设置图像色图。 例1-26 有一图像文件flower.jpg,在图形窗口显示该图像。 程序如下:[x,cmap]=imread('flower.jpg'); %读取图像的数据阵和色图阵 image(x);colormap(cmap);axis image off %保持宽高比并取消坐标轴 6.2 动画制作 MATLAB提供getframe、moviein和...

matlab制作牛顿第二定律gui
matlab制作牛顿第二定律,需要先建立函数的通式,然后再导入计算出来的数据,然后根据这些数据,建立出函数的模型,再建立出导轨的轨迹就行了

如何用matlab制作一个自定义的工具箱
工具箱就是函数的集合吧,没有啥特殊的。把函数文件全部放到一个文件夹里,那后将该文件夹拷贝到matlab的toolbox文件夹下(在matlab安装路径中找),最后将该文件夹路径添加到matlab路径中(手动的话在preferens里设置,命令的话用addpath)

怀仁县13014891264: 求用matlab制作简单动画实例 -
寿蓓优力: 具体制作方法如下: 1、首先,这里举例代码如下: x=-8:0.5:8; [XX,YY]=meshgrid(x); r=sqrt(XX.^2+YY.^2)+eps; Z=sin(r)./r; surf(Z); 生成了一幅静态的surf图片,XX,YY由meshgrid生成. 2、下面输入 theAxes=axis;, 右侧可以看到,theAxes=[...

怀仁县13014891264: 求matlab简易动画程序 -
寿蓓优力: % 跳动的红心x = linspace(-2,2,100);% [X,Y,Z] = meshgrid(x,x,x); I1 = (X.^2+9/4*Y.^2+Z.^2-1).^3-X.^2.*Z.^3-9/80*Y.^2.*Z.^3; p = patch(isosurface(X,Y,Z,I1,0)); set(p, 'FaceColor', 'red', 'EdgeColor', 'none'); view(3); axis equal ; axis off; light('Posi',[0 -2 3])...

怀仁县13014891264: 高分跪求简单的matlab程序动画设计,比较简单点的 偶们下周就得交了~~~ 附带注释,最好能详细点的哈 -
寿蓓优力: %%%%此程序实现从右下角想左上角的逐渐显示,最简单的动画%%%%a 和b的值,在图像的像素尺寸范围内,可以改变,自己试一试.A=imread('1.jpg'); %%%读取文件名为1的jpg图像 A=rgb2gray(A); a=200; b=100; for i=1:150 a=a-1; b=b+1; A1=imcrop(A,[a,a,b,b]); imshow(A1) end

怀仁县13014891264: 怎么用matlab做简单的二维动画啊,求相关实例.
寿蓓优力: 用图像句柄实现.

怀仁县13014891264: 用matlab设计一个程序 十张图片做一个动画 考试急用 -
寿蓓优力: %先把10张图片按播放顺序重命名为1-10.jpg,放在与程序相同目录下 for i=1:10 filestr=[ int2str(i) '.jpg']; ImgData = imread(filestr); ImgStream(:,:,:,i+1) = ImgData; end for i = 1:10 FF = ImgStream(:,:,:,i); mov = addframe(mov,FF); end%如果是直接在matlab里面播放,直接用 imshow()函数即可

怀仁县13014891264: 怎样用Matlab做动画演示 -
寿蓓优力: 怎样用Matlab做动画演示%将下列代码,拷贝到command window中执行,就会得到一个波的传播的动画演示.t = 0:pi/50:4*pi;y = sin(t);h = plot(t,y,'YDataSource','y');k=0;tmp=10;%tmp决定了移动速度,tmp越小,速度越大.while 1 y = sin(t+k*2*pi/tmp);refreshdata(h,'caller') % Evaluate y in the function workspace drawnow; pause(.2);k=mod(k+1,tmp);end

怀仁县13014891264: 如何用Matlab 制作一个6人赛跑的动画 -
寿蓓优力: 1.故事情节,龟兔赛跑 2.简单的 分镜头,提示故事大概情况和情节发展 3.绘制角色,龟和兔子,还有其他配角 4.按照分镜头制作动画. 5.配上音乐 (配音可以再绘制分镜头之前做也是可以的)

怀仁县13014891264: Matlab如何画动态图 -
寿蓓优力: No.1 给你一个示例吧~~~用for循环做的 %动态绘制椭圆 clf;axis([-2,2,-2,2]); axis equal; pause(1); h=line(NaN,NaN,'marker','o','linesty','-','erasemode','none'); t=6*pi*(0:0.02:1); for n=1:length(t)set(h,'xdata',2*cos(t(1:n)),'ydata',sin(t(1:n)));pause(0.05)...

怀仁县13014891264: 求一个matlab三维动图,要程序,就直接复制的那种,很简单就可以,谢谢 -
寿蓓优力: ^clf x=3*pi*(-1:0.05:1);y=x;[X,Y]=meshgrid(x,y); R=sqrt(X.^2+Y.^2)+eps; Z=sin(R)./R; h=surf(X,Y,Z);colormap(jet);axis off n=12;mmm=moviein(n); for i=1:n rotate(h,[0 0 1],25);mmm(:,i)=getframe; end close disp('已完成动画制作;按任意键继续,播放动画.') pause shg,axis off movie(mmm,5,12)

怀仁县13014891264: 如何利用matlab做gif格式的动画 -
寿蓓优力: 能啊,用这句代码: [filename,pathname] = uiputfile({'*.jpg';'*.gif';'*.bmp';'*.tif';'*.png';},'图片保存为');

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网