MATLAB作图基本知识.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MATLAB作图基本知识

由线到面的可视化 摘要: 在Matlab,面的绘制过程中经常有许多问题,尤其是许多对计算机运用不够成熟的人,他们将长不知道怎么将脑子中的图形画出来,从而实现面的可视化,有的则会通过很复杂的方法才能实现面的绘制。本文主要想大家提供一种在你知道线的函数的情况下,快速绘制出相应的面。 线到面: 如果我们想要绘制一个平面,首先必须真正体会’meshgrid’函数的用法。 例如,我们很容易可以绘制一个直平面如图1: 图1 相应代码如下: clear all s=linspace(0,5,21); t=linspace(0,5,21); [s,t]=meshgrid(s,t); x=s; z=t; y=zeros(size(s)); surf(x,y,z); shading interp; axis equal 但是我们也可以通过另一种方法: 我们可以知道一个一条线例如一个空间的直线如图2: 图2 相应代码如下: clear clc s=linspace(0,5,21); z1=s; x1=zeros(size(z1)); y1=zeros(size(z1)); plot3(x1,y1,z1); 然后我们可以通过for循环得到一排直线如图3: 图3 相应代码如下: clear clc for t=0:0.25:5 s=linspace(0,5,21); z1=s; x1=zeros(size(z1)); y1=zeros(size(z1)); % plot3(x1,y1,z1); z2=z1; x2=x1+t; y2=y1; plot3(x2,y2,z2); hold on end axis equal 然后我们可以通过meshgrid函数把这些直线变成一个面,所需要做的只是把meshgid代替for循环,plot3改为surf函数。 代码如下: clear clc t=linspace(0,5,21); s=linspace(0,5,21); [s,t]=meshgrid(s,t); z1=s; x1=zeros(size(z1)); y1=zeros(size(z1)); plot3(x1,y1,z1); z2=z1; x2=x1+t; y2=y1; surf(x2,y2,z2); hold on shading interp axis equal 如图4: 图4 因而我们可以得到meshgid的使用方法:可以将线做展开、延伸、旋转为一个面。 基本步骤:先画出线图形,让后利用for函数进行图形叠加,最后使用meshgrid替代for函数。 同理我们也可以使用方法画球: 先画一个圆在将圆沿z轴旋转即可得到一个球。 执行如下代码: clear Clc %%%%%%%%%%%%%%%%% t=linspace(0,pi,21); s=linspace(0,2*pi,21); [s,t]=meshgrid(s,t); %%%%%%%%%%%%%%%%%%% x1=cos(s); z1=sin(s); y1=zeros(size(x1)); 图5 %%%%%%%%%%%%%%%%%%%% z2=z1; x2=x1.*cos(t); y2=x1.*sin(t); surf(x2,y2,z2); hold on % shading interp axis equal 结果如图5: 根据以上方法我们可以画出许多图形,如圆环(图6),单叶双曲回转面(图7),???圆锥面等等。 图6 图7 但是这种方法一般用于简单图形变换,并不适用于所有情况,像双曲抛物面,及导线比较复杂的圆锥面的变换均不适用。 我们可以通过线到面的可视化,做一些我们常见的图形,如轮胎的剖面图。 绘制轮胎剖面图: 设计原理:由线到面的可视化,我们可以画出轮胎的剖面图。 设计步骤: 首先设计轮胎的外圈。轮胎的外圈是一个圆环,处于剖面图的需要,只画出3/4*3/4的圆环,代码如下: clear clc t=linspace(0,3*pi/2,31); p=linspace(pi/2,2*pi,31); [t,p]=meshgrid(t,p); x1=5+cos(p); z1=sin(p); y1=zeros(size(z1)); z2=z1; x2=x1.*cos(t)-y1.*sin(t); y2=x1.*sin(t)+y1.*cos(t); surf(x2,y2,z2); 第二步:绘制径向剖面图: t=linspace(0,3*pi/2,31); p=linspace(0,1,31); [t,p]=meshgrid(t,p); x1=5+p; y1=zeros(size(x1)); z1=zeros(size(x1)); z2=z1; x2=x1.*cos(t)-y1.*sin(t)

文档评论(0)

ddf55855 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档