MATLAB画三维空间小球沿给定轨迹曲线运动~

问题描述:

MATLAB画三维空间小球沿给定轨迹曲线运动~

轨迹是由一个矩阵画出来的,文件名为single,

x=single(:,2);%x为矩阵所有第2列的值

y=single(:,3);%y为矩阵所有第3列的值

z=single(:,4);%y为矩阵所有第4列的值

plot3(x,y,z);%画出指定的3维轨迹曲线

现在的问题是,我的目标是做一个小球沿此轨迹曲线运动的动画,comet命令我看过,但是comet做的彗星图运动太快了,可以调慢动作的么?另外小球怎么显示出来?把一个质点放大还是画一个球体额好?

1个回答 分类:综合 2014-11-24

问题解答:

我来补答
设x 为1xm y为nx1 z为 mxn
1、plot3(x,y,z) ; 其中X Y Z 为二维数组(x的行向量(x坐标点列)重复length(y)=n次,y的列向量重复length(x)=m次,z(m,n)对应x(m)y(n)) 此方法要将x,y重复扩展
2、meshi(x,y,z)
matlab帮助里输入上面的两个命令下有详细操作方法.
再问: 感谢您的赐教~~可是我还有点疑问, 我的这个single矩阵总共是963行,4列~~ 另外plot和mesh可以做出运动的动画效果么?
再答: comet3可以加个轨迹head表示出轨迹运动 采用for循环 ,可以在每个循环中可以在画每个点如点(x1,y2,z12)的过程中写入Plot3(x(1),y(2,2),z(1,2)),hold on plot(Centers(1,:),Centers(2,:),'kx',... ,'LineWidth',2) plot(Centers(1,:),Centers(2,:),'ko',... 'MarkerSize',12,) 在Plot3中可用表示 圆圈 里面一个叉叉 'MarkerSize',12表示大小,可以用来表示你的球(天体),'LineWidth',2可表示圆圈的线条粗细,加宽就行。 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
再答: comet3可以加个轨迹head表示出轨迹运动 采用for循环 ,可以在每个循环中可以在画每个点如点(x1,y2,z12)的过程中写入Plot3(x(1),y(2,2),z(1,2)),hold on plot(Centers(1,:),Centers(2,:),'kx',... ,'LineWidth',2) plot(Centers(1,:),Centers(2,:),'ko',... 'MarkerSize',12,) 在Plot3中可用表示 圆圈 里面一个叉叉 'MarkerSize',12表示大小,可以用来表示你的球(天体),'LineWidth',2可表示圆圈的线条粗细,加宽就行。 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
 
 
展开全文阅读
剩余:2000
下一页:铜,及其化合物