作业帮 > 数学 > 作业

Matlab画如何多个椭圆?

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:数学作业 时间:2024/08/10 01:46:27
Matlab画如何多个椭圆?
我想在z=[0,10]之间画多个椭圆,椭圆为x=sin(t)+sin(b),y=cos(t)+sin(b),
最终目标是形成螺旋的椭圆柱.
我有500分,先给100,后给400.

我说的可能不详细,我是想实现如下效果:

b=[0,2*pi]

椭圆的圆心为(sin(b),sin(b))不断变化,但大小不变,

最终图像看起来是螺旋的线,这个线的截面是平行于z轴的椭圆. 

接近了,能不能把这些分离的椭圆连起来,变成立体的柱体?

如:图片

Matlab画如何多个椭圆?
方案一
clc
clear
N=100;
z=linspace(1,10,N);
t=20.*sin(z);
% plot(z,t);
hold on
b=linspace(0,2*pi);
r=(cos(b).^2/1+sin(b).^2/2).^(-2);
x=r.*cos(b);
y=r.*sin(b);
for i=1:length(z)
   plot(x+z(i),y+t(i));
end
title(['N=',num2str(N)]);
hold off
方案二:
clc
clear
%产生螺旋线
t=linspace(0,10);
x=cos(t);
y=sin(t);
z=-t;
plot3(z,x,y,'r')
%构造椭圆单元
b=linspace(0,2*pi);
r=(cos(b).^2+sin(b).^2/2).^(-1/2);
xp=r.*cos(b);
yp=r.*sin(b);
hold on
for i=1:length(z)
    xtemp=x(i)+xp;
    ytemp=y(i)+yp;
    ztemp=z(i).*ones(1,length(xp));
    plot3(ztemp,xtemp,ytemp);    
end
view
hold off 
我看你的图像,椭圆的取向也有倾斜,比较困难