空间中常见曲面图形的绘制(matlab)

旋转单叶双曲面

%%%旋转单叶双曲面
%%颜色可以自行调整
a=2;
c=1;
phi=0:0.1:2*pi+0.1;
theta=(-1:0.1:1)';
x=a*cosh(theta)*cos(phi);
y=a*cosh(theta)*sin(phi);
z=c*sinh(theta)*ones(size(phi));
figure
surf(x,y,z)
alpha(0.5)
xlabel('x轴')
ylabel('y轴')
zlabel('z轴')
shading interp
line([0,0],[0,0],[c*1.5,-c*1.5],'linewidth',2);
line([0,0],[a*1.5,-a*1.5],[0,0],'linewidth',2);
line([a*1.5,-a*1.5],[0,0],[0,0],'linewidth',2);
axis equal

旋转双叶双曲面

%%%旋转双叶双曲面
%%颜色可以自行调整
a=2;
c=1;
phi=0:0.1:2*pi+0.1;
theta=(0:0.1:2)';
x=a*sinh(theta)*cos(phi);
y=c*sinh(theta)*sin(phi);
z=c*cosh(theta)*ones(size(phi));
figure
surf(z,y,x)
hold on
surf(-z,y,x)
alpha(0.5)
xlabel('x轴')
ylabel('y轴')
zlabel('z轴')
shading interp
line([0,0],[0,0],[5,-5],'linewidth',2);
line([0,0],[5,-5],[0,0],'linewidth',2);
line([5,-5],[0,0],[0,0],'linewidth',2);

旋转椭球面

%%%旋转椭球面
%%颜色可以自行调整
a=3;
c=1;
phi=0:0.1:2*pi;
theta=phi';
x=a*sin(theta)*cos(phi);
y=a*sin(theta)*sin(phi);
z=c*cos(theta)*ones(size(phi));
figure
surf(x,y,z)
alpha(0.5)
xlabel('x轴')
ylabel('y轴')
zlabel('z轴')
shading interp
line([0,0],[0,0],[c*1.5,-c*1.5],'linewidth',2);
line([0,0],[a*1.5,-a*1.5],[0,0],'linewidth',2);
line([a*1.5,-a*1.5],[0,0],[0,0],'linewidth',2);
axis equal

抛物柱面

%%%抛物柱面
%%颜色可以自行调整
a=1;
x=-5:0.1:5;
y=x.^2/2;
z=-5:0.5:5;
X=ones(length(z),1)*x;
Y=ones(length(z),1)*y;
Z=z'*ones(1,length(x));
figure
hold on
surf(X,Y,Z)
hold on
grid on
surf(-X,Y,Z)
alpha(0.5)
xlabel('x轴')
ylabel('y轴')
zlabel('z轴')
shading interp
line([0,0],[0,0],[5.5,-5.5],'linewidth',2);
line([0,0],[5.5,-5.5],[0,0],'linewidth',2);
line([5.5,-5.5],[0,0],[0,0],'linewidth',2)
axis equal
view(73,27)

椭圆柱面

%%%椭圆柱面
%%颜色可以自行调整
a=4;
b=2;
theta=0:0.1:2*pi+0.1;
x=a*cos(theta);
y=b*sin(theta);
z=-5:0.5:5;
X=ones(length(z),1)*x;
Y=ones(length(z),1)*y;
Z=z'*ones(1,length(x));
figure
hold on
grid on
surf(X,Y,Z)
alpha(0.5)
xlabel('x轴')
ylabel('y轴')
zlabel('z轴')
shading interp
line([0,0],[0,0],[5.5,-5.5],'linewidth',2);
line([0,0],[5.5,-5.5],[0,0],'linewidth',2);
line([5.5,-5.5],[0,0],[0,0],'linewidth',2)
axis equal
view(18,20)

双曲柱面

%%%双曲柱面
%%颜色可以自行调整
a=2;
b=1;
theta=-2:0.1:2;
x=a*cosh(theta);
y=b*sinh(theta);
z=-5:0.5:5;
X=ones(length(z),1)*x;
Y=ones(length(z),1)*y;
Z=z'*ones(1,length(x));
figure
hold on
surf(X,Y,Z)
hold on
grid on
surf(-X,Y,Z)
alpha(0.5)
xlabel('x轴')
ylabel('y轴')
zlabel('z轴')
shading interp
line([0,0],[0,0],[5.5,-5.5],'linewidth',2);
line([0,0],[5.5,-5.5],[0,0],'linewidth',2);
line([5.5,-5.5],[0,0],[0,0],'linewidth',2)
axis equal
view(18,20)

椭圆锥面

%%%椭圆锥面
%%颜色可以自行调整
a=3;
b=3;
x=-5:0.01:5;
y=-5:0.01:5;
[X,Y]=meshgrid(x,y); 
Z=sqrt(X.^2/a^2+Y.^2/b^2);
figure
surf(X,Y,Z); 
hold on
surf(X,Y,-Z); 
zlim([-1,1]);
alpha(0.5)
xlabel('x轴')
ylabel('y轴')
zlabel('z轴')
shading interp
line([0,0],[0,0],[2.5,-2.5],'linewidth',2);
line([0,0],[5.5,-5.5],[0,0],'linewidth',2);
line([5.5,-5.5],[0,0],[0,0],'linewidth',2)

椭球面

%%%椭球面
%%颜色可以自行调整
a=3;
b=2;
c=1;
phi=0:0.1:2*pi;
theta=phi';
x=a*sin(theta)*cos(phi);
y=b*sin(theta)*sin(phi);
z=c*cos(theta)*ones(size(phi));
figure
surf(x,y,z)
alpha(0.5)
xlabel('x轴')
ylabel('y轴')
zlabel('z轴')
shading interp
line([0,0],[0,0],[c*1.5,-c*1.5],'linewidth',2);
line([0,0],[b*1.5,-b*1.5],[0,0],'linewidth',2);
line([a*1.5,-a*1.5],[0,0],[0,0],'linewidth',2);
axis equal

单叶双曲面

%%%单叶双曲面
%%颜色可以自行调整
a=1;
b=1;
c=1;
phi=0:0.1:2*pi+0.1;
theta=(-1:0.1:1)';
x=a*cosh(theta)*cos(phi);
y=b*cosh(theta)*sin(phi);
z=c*sinh(theta)*ones(size(phi));
figure
surf(x,y,z)
alpha(0.5)
xlabel('x轴')
ylabel('y轴')
zlabel('z轴')
shading interp
line([0,0],[0,0],[c*1.5,-c*1.5],'linewidth',2);
line([0,0],[b*1.5,-b*1.5],[0,0],'linewidth',2);
line([a*1.5,-a*1.5],[0,0],[0,0],'linewidth',2);
axis equal

双叶双曲面

%%%双叶双曲面
%%颜色可以自行调整
a=1;
b=1;
c=1;
phi=0:0.1:2*pi+0.1;
theta=(0:0.1:2)';
x=a*sinh(theta)*cos(phi);
y=b*sinh(theta)*sin(phi);
z=c*cosh(theta)*ones(size(phi));
figure
surf(z,y,x)
hold on
surf(-z,y,x)
alpha(0.5)
xlabel('x轴')
ylabel('y轴')
zlabel('z轴')
shading interp
line([0,0],[0,0],[5,-5],'linewidth',2);
line([0,0],[5,-5],[0,0],'linewidth',2);
line([5,-5],[0,0],[0,0],'linewidth',2);

椭圆抛物面

%%%椭圆抛物面
%%颜色可以自行调整
a=3;
b=3;
x=-5:0.01:5;
y=-5:0.01:5;
[X,Y]=meshgrid(x,y); 
Z=X.^2/a^2+Y.^2/b^2;
figure
surf(X,Y,Z); % 正半轴
zlim([-1,1]);
alpha(0.5)
xlabel('x轴')
ylabel('y轴')
zlabel('z轴')
shading interp
line([0,0],[0,0],[2.5,-.5],'linewidth',2);
line([0,0],[5.5,-5.5],[0,0],'linewidth',2);
line([5.5,-5.5],[0,0],[0,0],'linewidth',2)

双曲抛物面

%%%双曲抛物面
%%颜色可以自行调整
a=1;
b=1;
x=-2:0.01:2;
y=-2:0.01:2;
[X,Y]=meshgrid(x,y); 
Z=X.^2/a^2-Y.^2/b^2;
figure
surf(X,Y,Z);
alpha(0.5)
xlabel('x轴')
ylabel('y轴')
zlabel('z轴')
shading interp
line([0,0],[0,0],[2.5,-2.5],'linewidth',2);
line([0,0],[2.5,-2.5],[0,0],'linewidth',2);
line([2.5,-2.5],[0,0],[0,0],'linewidth',2)
  • 20
    点赞
  • 91
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狗链锁你喉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值