[Matlab绘图][三维图形][三维曲线基本函数+三维曲面+其他三维图形]

1.绘制三维图形的基本函数

    

最基本的三维绘图函数为plot3;
plot3与plot用法十分相似,调用格式:

plot(x1,y1,z1,选项1,x2,y2,z2,选项2,...,xn,yn,zn,选项n)
当x,y,z是同维向量时,则x,y,z,对应元素构成一条三维曲线;
当x,y,z是同维矩阵时,则以x,y,z对应列元素绘制三维曲线,曲线条数等于矩阵列数。

  例:

程序如下:

 t=0:pi/50:2*pi;
x=8*cos(t);
y=4*sqrt(2)*sin(t);
z=-4*sqrt(2)*sin(t);
plot3(x,y,z,'p');
title('Line in 3-D Space');
text(0,0,0,'origin');
xlabel('x'),ylabel('y'),zlabel('z');
grid;

  运行结果:

2.三维曲面

2.1平面网格坐标矩阵的生成

  绘制z=f(x,y)所代表的三维曲面图,先要在xy平面选定一个矩形区域,假定矩形区域D=[a,b]*[c,d],然后将[a,b]在x方向分成m份,将[c,d]在y方向分成n份,由各划分点分别作平行于两坐标轴的直线,将区域D分成m*n个小矩形,生成代表每一个小矩形顶点坐标的平面网格坐标矩阵,最后利用有关函数绘图。

  产生平面区域内的网格坐标矩阵有两种方法:

  1.利用矩阵运算生成、

x=a:dx:b;
y=(c:dy:d)';
X=ones(size(y))*x;
Y=y*ones(size(x));
语句执行后,
矩阵X的每一行都是向量x,行数等于向量y的元素个数,
矩阵Y的每一列都是向量y,列数等于向量x的元素个数。
于是对于矩阵X,Y来说,它们位置(i,j)上的元素值(X(i,j),Y(i,j))就是所要形成的平面网格
在位置(i,j)上的X,Y坐标。可根据每一个网格点上的x,y坐标求这个点对应的z,则得到Z矩阵。
显然,X,Y,Z各列或各行所对应坐标,对应于一条空间曲线,空间曲线的集合将可组成空间曲面。

  2.利用meshgrid函数生成。

 

调用格式:
x=a:dx:b;
y=c:dy:d;
[x,y]=meshgrid(x,y);
语句执行后得到与方法1相同的矩阵X,Y。
当向量x=y时,函数可写成meshgrid(x);

  例:利用法网格坐标阵巧解不定方程:

  已知6<x<30,15<y<36,求不定方程2x+5y=126的整数解。程序如下:

x=7:29;
y=16:35;
[x,y]=meshgrid(x,y); %在[7,29]*[16,35]区域生成网格坐标
z=2*x+5*y;
k=find(z==126);%找出解的位置,即k为z中元素等于126的元素的位置
x(k)',y(k)'%输出对应位置的x,y即方程的解

输出:
ans =

     8    13    18    23


ans =

    22    20    18    16
%即方程有4组解:(8,22),(13,20),(18,18)(23,16).

输出:
>> k

k =

    27
   125
   223
   321

输出(关于find函数):
>> [a,b]=find(z==126)

a =

     7
     5
     3
     1


b =

     2
     7
    12
    17
>> x(7,2)

ans =

     8

2.2 绘制三维曲面的函数

两个函数:

me
  • 3
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值