MATLAB绘制圆变形动态图

作者&投稿:巢贱 (若有异议请与网页底部的电邮联系)
用matlab画出圆形成轨迹的动画~

本视频展示如何用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=[0,40,0,40,-0.5,1],这是surf函数生成的,因为上面绘制的surf没有使用surf(XX,YY,Z)所以坐标范围不同,但是无论什么坐标范围,这里都先取出来,存到一个变量中,后面备用。

3、mat=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)
完成效果图。

function h=circle(r,x0,y0,C,Nb)

% CIRCLE adds circles to the current plot
% %
% r 圆之半径,可为列矩阵,代表可同时绘制许多同心或同性质的圆。
%
% -x0,y0 圆心之座标,可为矩阵,代表可同时绘制许多不同圆心位置之圆。
%
% -C 圆之颜色,不说明时,由指令依序指定,亦可作向量指定。
%
% -Nb 绘圆时所用之点数,可用向量,若不指定,则以300点为预设值。
%

% Check the number of input arguments

switch nargin

case 0

r=[];x0=[];y0=[];C=[];Nb=[];

case 1

x0=[];y0=[];C=[];Nb=[];

case 2

y0=zeros(1,length(x0));C=[];Nb=[];

case 3

C=[];Nb=[];

case 4

Nb=[];

end

if length(x0)~=length(y0),

if length(y0)==1,

y0=ones(1,length(x0))*y0;

elseif length(x0)==1,

x0=ones(1,length(y0))*x0;

else

error('The lengths of x0 and y0 must be identical');

end;

end;

% set up the default values

if isempty(r),r=1;end;

if isempty(x0),x0=0;end;

if isempty(y0),y0=0;end;

if isempty(Nb),Nb=300;end;

if isempty(C),C=get(gca,'colororder');end;

if isstr(C),C=C(:);end;

% work on the variable sizes

x0=x0(:);

y0=y0(:);

r=r(:);

Nb=Nb(:);

% how many rings are plottet

if length(r)~=length(x0)

maxk=length(r)*length(x0);

else

maxk=length(r);

end;

route=0;

if length(x0)==1, route=1; end

if length(r)==1, route=2; end

if length(x0)==length(r), route=3; end

% drawing loop

for k=1:maxk

switch route

case 1

xpos=x0;

ypos=y0;

rad=r(k);

case 2

xpos=x0(k);

ypos=y0(k);

rad=r;

case 3

xpos=x0(k);

ypos=y0(k);

rad=r(k);

otherwise

rad=r(fix((k-1)/size(x0,1))+1);

xpos=x0(rem(k-1,size(x0,1))+1);

ypos=y0(rem(k-1,size(y0,1))+1);

end; % for switch

theta=linspace(0,2*pi,Nb(rem(k-1,size(Nb,1))+1,:)+1);

h(k)=line(rad*cos(theta)+xpos,rad*sin(theta)+ypos);

set(h(k),'color',C(rem(k-1,size(C,1))+1,:));

end;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
前面是是圆的函数
下面的主函数(把它放在运行窗口或者另外建一个文件也行)
r=[1 2 3 4 4 5 6]; %设置半径
x0=1; %坐标X
y0=1; %坐标Y
for i=1:length(r)
hold on
circle(r(i),x0,y0);%后面的颜色可以不设置
pause(1) %设置时间,例子是1s.
end
hold off

本视频展示如何用matlab绘制散圆状态图,可用于相关科研数据绘图!




matlab如何画圆
使用MATLAB画圆的方法有两种,分别如下:1、启动MATLAB,新建脚本,输入以下代码:close all; clear all; clc r=2; theta=0:pi\/100:2*pi;x=r*cos(theta); y=r*sin(theta);rho=r*sin(theta);figure(1)plot(x,y,'-')hold on; axis equal fill(x,y,'c')figure(2)h=polar(theta,rh...

怎么用matlab画圆
大致思路利用圆的参数方程去画圆。1、进入命令行窗口(Command Window)。2、假设我们已知圆心坐标(x,y)和半径r,例如x=7,y=13,r=4。3、输入以下代码:theta=0:2*pi\/3600:2*pi;Circle1=x+r*cos(theta);Circle2=y+r*sin(theta);plot(Circle1,Circle2,'m','Linewidth',1);axis equal ...

matlab中编写函数绘制圆形图案
function [x, y] = getCircle(center, r)t=0:0.01*pi:2*pi;x=cos(t).*r+center(1);y=sin(t).*r+center(2);例如绘制(1,1)为圆心,半径2 在命令窗口中运行[x, y] = getCircle([1,1], 2);plot(x,y)

MATLAB画圆,圆心在另一个圆上移动
sita=0:0.05:2*pi;r=2;x=r*cos(sita);y=r*sin(sita);x=[x,x(1)];y=[y,y(1)];figure,plot(x,y,'r');hold on;r1=1;si=0:0.05:2*pi;for ii=1:length(x)x1=x(ii)+r1*cos(si);y1=y(ii)+r1*sin(si);x1=[x1,x1(1)];y1=[y1,y1(1)];plot(x1,y1,'b')...

如何用matlab绘制圆
matlab如何绘制单位圆?我们知道半径为1的圆为单位圆,那么我们可以利用圆的参数方程,即可完成单位圆的绘制。其实现方法如下:1、根据圆的参数方程,写出其函数,即 x=cos(t)y=sin(t)2、当t从0到2π时,就可以得到其单位圆的【x,y】坐标值,即 t=0:pi\/10:2*pi x=cos(t);y=sin(t);...

怎么用matlab画一个圆
一、绘制实心圆:alpha=0:pi\/20:2*pi;%角度[0,2*pi]R=2;%半径x=R*cos(alpha);y=R*sin(alpha);plot(x,y,'-')axisequalfill(x,y,'r');%用红色填充Matlab画图效果:二、绘制实心圆点:plot(1:8,'ro','MarkerFaceColor','r');绘制效 ...

MATLAB画圆圈
方法一:在控制台输入以下代码。=== alpha=0:pi\/20:2*pi;%角度[0,2*pi]R=2;%半径 x=R*cos(alpha);y=R*sin(alpha);plot(x,y,'o-')axis equal === 方法二:把以下程序存为circle.m,调用函数画圆。=== function circle(R)alpha=0:pi\/50:2*pi;%角度[0,2*pi]R=2;%半径 x...

matlab画圆绕着z轴转动
matlab画圆绕着z轴转动需要几何变换。matlab画圆绕着z轴转动需要几何变换代码为T={cos(θ),输入后绕z轴旋转而成的旋转体会形成一簇网格平面,几何变换是建立在集合的变换与映射基础上。matlab是美国MathWorks公司出品的商业数学软件,于算法开发、数据可视化、数据分析以及数值计算的高级技术。

如何用matlab绘制圆的内接正n边形及外接正n边形
画圆 tt = (0:0.01:1)*2*pi;x=r*sin(tt);y=r*cos(tt);plot(x,y);axis equal hold on;内接圆 theta = (0:1\/n:1)*2*pi;[x,y]=pol2cart(theta,r);plot(x,y);外接圆 theta = pi\/n*ones(1,n+1)+(0:1\/n:1)*2*pi;r1 = r\/cos(2*pi\/2\/n)*ones(1,n+1);[x...

matlab画等份圆
t=0:0.01:2*pi;x=cos(t);y=sin(t);plot(x,y,':r');%画单位圆 axis equal%横纵坐标轴单位统一,使画出的圆变圆 grid on%网格 hold on%保持图形,以等分它 for i=0:15 plot([0,cos(pi*i\/4)],[0,sin(pi*i\/4)],'r');end%画八等分的园 ...

瑞金市18362395984: matlab中编写函数绘制圆形图案 -
剧凤康得: function [x, y] = getCircle(center, r) t=0:0.01*pi:2*pi; x=cos(t).*r+center(1);y=sin(t).*r+center(2); %例如绘制(1,1)为圆心,半径2 %在命令窗口中运行[x, y] = getCircle([1,1], 2);plot(x,y)

瑞金市18362395984: 如何用matlab中的mesh和surf函数画圆 -
剧凤康得: clc clear close all x0=2;y0=3;z0=4;%球心 r=5;%半径 %下面开始画 [x,y,z]=sphere; mesh(r*x+x0,r*y+y0,r*z+z0) % surf(r*x+x0,r*y+y0,r*z+z0) 你需要surf 就把surf的%去除

瑞金市18362395984: 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)...

瑞金市18362395984: 如何用matlab 画出如图所示的圆 -
剧凤康得: N=10; n=1:N; x2=exp(j*2*pi/N*n); figure; plot(0,0,'+','LineWidth',1); hold on; plot(x2,'o','LineWidth',6); hold off

瑞金市18362395984: MATLAB画圆圈 -
剧凤康得: 方法一:在控制台输入以下代码. %================= alpha=0:pi/20:2*pi;%角度[0,2*pi] R=2;%半径 x=R*cos(alpha); y=R*sin(alpha); plot(x,y,'o-') axis equal %=====================方法二: 把以下程序存为circle.m,调用函数画圆. ...

瑞金市18362395984: matlab中如何画出圆x^2+y^2=4的图形最好是两种方法 -
剧凤康得:[答案] 方法一:使用隐函数的方法来绘制. ezplot('x^2+y^2-4') 方法二:转换成参数函数来绘制图形. x=2*sint; y=2*cost; 程序如下: t=0:pi/100:2*pi; x=2*sin(t); y=2*cos(t); plot(x,y)

瑞金市18362395984: matlab 如何画圆 -
剧凤康得: syms a b; ezplot( (2-a).^2+(50-b).^2 );为什么这样画只能出现一个点?不能出现一个圆 答:这时圆没有半径, r=0; syms a b; ezplot( (2-a).^2+(50-b).^2-1 ); 解答:(Matlab R2013b) >> syms a b >> h=ezplot((2-a)^2+(50-b)^2==1,[1,3,49,51]);...

瑞金市18362395984: 知道了圆的半径和圆心坐标,怎样用MATLAB画出这个圆?
剧凤康得: 方法有很多,列举两种 先用[x,y]=scircle1(o1,o2,r)来生成以(o1,o2)为圆心,r为半径的圆周上的散点[x,y],再用plot (x,y)就可以了 或者用polar极坐标来画,也是用描点法,a=0:0.1:2*pi;b=ones(size(a))*r;polar(a,b)也可以,具体的用法找帮助,很详细

瑞金市18362395984: 用MATLAB软件如何画圆? -
剧凤康得: 这是要一个条件画一个呢还是总起来画一个,画图里默认的就是蓝色. 规定theta的取值,分别给x、y写表达式,然后用plot(x,y)画图就可以了. 至于求面积,在M文件里边加s=pi*r*r后边不要加分号就可以输出答案了.

瑞金市18362395984: 关于matlab画圆 -
剧凤康得: 这个问题出在初始化圆心横纵坐标的时候,xx和yy都是数组,所以在用rectangle函数的时候里面的xx-r和yy-r也是数组:[0,10,20,30](两个相同), 而rectangle('Position',[x,y,w,h],'Curvature',[x,y]),要求x和y为起始点坐标,w和h分别为宽和高,...

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