Matlab画如何多个椭圆?我想在z=[0,10]之间画多个椭圆,椭圆为x=sin(t)+sin(b),y=cos(t)+sin(b),最终目标是形成螺旋的椭圆柱.我有500分,先给100,后给400.我说的可能不详细,我是想实现如下效果:b=[0,2*pi]椭
来源:学生作业帮助网 编辑:六六作业网 时间:2025/02/01 10:02:19
Matlab画如何多个椭圆?我想在z=[0,10]之间画多个椭圆,椭圆为x=sin(t)+sin(b),y=cos(t)+sin(b),最终目标是形成螺旋的椭圆柱.我有500分,先给100,后给400.我说的可能不详细,我是想实现如下效果:b=[0,2*pi]椭
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画如何多个椭圆?我想在z=[0,10]之间画多个椭圆,椭圆为x=sin(t)+sin(b),y=cos(t)+sin(b),最终目标是形成螺旋的椭圆柱.我有500分,先给100,后给400.我说的可能不详细,我是想实现如下效果:b=[0,2*pi]椭
方案一
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
我看你的图像,椭圆的取向也有倾斜,比较困难