Matlab 如何画平面图有限平面?

查看: 6219|回复: 5|关注: 0
怎么做三维平面
<h1 style="color:# 麦片财富积分
新手, 积分 5, 距离下一级还需 45 积分
哪位大虾能告诉我,怎么用matlab画表达式中没有z的三维平面?如:绘制x+y-1=0的三维平面
<h1 style="color:# 麦片财富积分
你可以自己把Z的值设出来再使用plot3作图,给你一个简单的例子:x = 1:0.1:5;
y = 1 -
z = 0 *
plot3(x,y,z);
复制代码希望能对你有帮助。
<h1 style="color:# 麦片财富积分
x+y-1=0并不是一个面,而是一条等高线。是z=0的等高线。
<h1 style="color:# 麦片财富积分
Atom2004 发表于
x+y-1=0并不是一个面,而是一条等高线。是z=0的等高线。
谢谢你,我是在看一本matlab的书时看到一道习题,刚开始学习不会做。题目是这样的:
写出绘制由曲面z=xy,x+y-1=0,z=0所围成的立体图形的MATLAB命令。
<h1 style="color:# 麦片财富积分
对你们的发帖表示感谢,我去网上查了查,突然间想到了,写出来便于交流,其实很简单。空间平面x+y-1=0,由于z不受x和y影响,或者说平面是垂直于xy平面的,所以Z和X数据矩阵可由meshgrid生成,Y数据矩阵由X矩阵确定,代码如下x=-1:0.1:1;
[X,Z]=meshgrid(x);
Y=1-X;
mesh(X,Y,Z);复制代码
<h1 style="color:# 麦片财富积分
对于你的这一到题目,小弟也出于学习和练习,写了一个程序。
请大家给点意见吧。
这个是生成的图像,请高人指点一下,有什么办法可以仅仅生成这三个面所围成的立体图形呢?而不是单纯的三个面拼凑起来的。
两个图形是一样的,只是一个图形的平面是半透明。
matlab.png (69.22 KB, 下载次数: 0)
13:22 上传
下面是代码:% 绘制由曲面 z=xy, x+y-1=0, z=0 所围成的立体图形
min=0; % 最小值
max=1; % 最大值
res=0.001; % 分辨率
alpha=0.6; % 表面透明度
View=[-25 22]; % 角度
% z=xy
[x1 y1]=meshgrid(min:res:max);
z1=x1.*y1;
subplot(1,2,1)
mesh(x1,y1,z1,'LineStyle','none','FaceAlpha',1,'FaceColor','r')
axis equal
xlabel('x')
ylabel('y')
zlabel('z')
set(gca,'yDir','reverse','View',View)
hold on
subplot(1,2,2)
mesh(x1,y1,z1,'LineStyle','none','FaceAlpha',alpha,'FaceColor','r')
axis equal
xlabel('x')
ylabel('y')
zlabel('z')
set(gca,'yDir','reverse','View',View)
hold on
% x+y-1=0
[x2 z2]=meshgrid(min:res:max);
y2=1-x2;
subplot(1,2,1)
mesh(x2,y2,z2,'LineStyle','none','FaceAlpha',1,'FaceColor','g')
subplot(1,2,2)
mesh(x2,y2,z2,'LineStyle','none','FaceAlpha',alpha,'FaceColor','g')
% z=0
[x3 y3]=meshgrid(min:res:max);
z3=zeros((max-min)/res+1);
subplot(1,2,1)
mesh(x3,y3,z3,'LineStyle','none','FaceAlpha',1,'FaceColor','b')
hold off
subplot(1,2,2)
mesh(x3,y3,z3,'LineStyle','none','FaceAlpha',alpha,'FaceColor','b')
hold off复制代码
站长推荐 /3
车辆动力学工具箱介绍:一款集成3D虚拟环境的汽车仿真产品
MATLAB中文论坛是全球最大的 MATLAB & Simulink 中文社区。用户免费注册会员后,即可下载代码,讨论问题,请教资深用户及结识书籍作者。立即注册加入我们吧!
MATLAB官方社交平台
MATLAB中文论坛微社区MATLAB平面有限单元分析_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
MATLAB平面有限单元分析
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
还剩2页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢使用matlab画三维空间中的平面~
今天想用球面来模拟一个数据,就想到了用matlab来画图。但是刚开始不会啊,就询问别人,别人说也没怎么用过,就去百度搜索啦,结果还真搜到一个画整个球的小段code,是这样的:
给定球心和直径,画出一个球。
x0=4/3;y0=4/3;z0=0;%球心
r=sqrt(41)/3;%半径
%下面开始画
mesh(r*x+x0,r*y+y0,r*z+z0)
axis equal
在这里用到了mesh函数,不知道mesh函数是怎么个意思,大致是画一个网格状的吧,再百度之吧:一句话:
mesh(x,y,z):以z矩阵列、行下标为x,y轴自变量,画网线图.
仅仅画出球并不是我想要的,我只是想给定x,y,画出Z的平面图,用球面来模拟一个凹的面。在同学的提示下,最后终于成功绘制:code是这样写的~
x=0:0.1:3;//x坐标 x=[0,3]
z=zeros(31,31);//对于每个(x,y)pair,都会有个z的值,这个值是通过公式计算出来的啦。
for i=1:1:31
for j=1:1:31
z(i,j)=19/2-sqrt(361/4-(x(i)-3).^2-(y(j)-3).^2);(给定直径和球心的球)
surf(x,y,z);//根据x,y,z画出平面
最后的图是这样的~~:
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。【图文】matlab的平面二维图的绘制_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
matlab的平面二维图的绘制
&&matlab画图功能很强大 介绍了从0开始的二维画图 能画出你想到的函数 操作简单
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢当前位置:
&帮忙看看这个平面图用matlab怎么画
帮忙看看这个平面图用matlab怎么画
作者 liangyje
在三维空间画一个垂直于x轴的彩色平面,平面的形状如图所示,平面上曲线的二维坐标y,z已知
使用patch函数
示例如下:
t=0:pi/5:2*
x=repmat(1,size(t,2),1);
y=sin(t)';
z=cos(t)';
patch(x,y,z,1:length(t),'Facecolor','Interp')
引用回帖:: Originally posted by bafeite at
使用patch函数
示例如下:
t=0:pi/5:2*
x=repmat(1,size(t,2),1);
y=sin(t)';
z=cos(t)';
patch(x,y,z,1:length(t),'Facecolor','Interp') 能具体给写一下嘛,我是初学者,谢谢啦
引用回帖:: Originally posted by liangyje at
能具体给写一下嘛,我是初学者,谢谢啦 怎么具体 俺又没有你的数据~~
引用回帖:: Originally posted by bafeite at
怎么具体 俺又没有你的数据~~ 把这条线的数据给你,数据有两列,第一列是y,第二列是z.&&
& &&&1.704& && & 0.000
& &&&1.527& && &-0.200
& &&&1.365& && &-0.400
& &&&1.154& && &-0.600
& &&&0.881& && &-0.800
& &&&0.843& && &-1.000
& &&&0.801& && &-1.200
& &&&0.758& && &-1.400
& &&&0.714& && &-1.600
& &&&0.668& && &-1.800
& &&&0.615& && &-2.000
& &&&0.571& && &-2.200
& &&&0.520& && &-2.400
& &&&0.466& && &-2.600
& &&&0.376& && &-2.800
& &&&0.193& && &-3.000
& &&&0.000& && &-3.110
长方形尺寸高4*长3,这个面垂直于x轴。谢谢啦,
Curve=[1.704& &&&0.000
& &&&1.527& && &-0.200
& &&&1.365& && &-0.400
& &&&1.154& && &-0.600
& &&&0.881& && &-0.800
& &&&0.843& && &-1.000
& &&&0.801& && &-1.200
& &&&0.758& && &-1.400
& &&&0.714& && &-1.600
& &&&0.668& && &-1.800
& &&&0.615& && &-2.000
& &&&0.571& && &-2.200
& &&&0.520& && &-2.400
& &&&0.466& && &-2.600
& &&&0.376& && &-2.800
& &&&0.193& && &-3.000
& &&&0.000& && &-3.110
& & 4.000& && & -3.110
& & 4.000& && &&&0.000];
x=repmat(1,size(Curve,1),1);
patch(x,Curve(:,1),Curve(:,2),1:length(x),'Facecolor','None');
引用回帖:: Originally posted by bafeite at
Curve=[1.704& &&&0.000
& &&&1.527& && &-0.200
& &&&1.365& && &-0.400
& &&&1.154& && &-0.600
& &&&0.881& && &-0.800
& &&&0.843& && &-1.000
& &&&0.801& && &-1.200
& &&&0.758& && &-1.400
& && &... 画出来怎么不是面,是一条直线呢?
引用回帖:: Originally posted by liangyje at
画出来怎么不是面,是一条直线呢?
画出来是直线你也不探究下&&
果然是100% Rookie呀 ~~ 坐标系是x-z平面,请你用工具栏上旋转按钮,
调整一下视角,就OK啦 !
24小时热帖
下载小木虫APP
与700万科研达人随时交流

我要回帖

更多关于 如何画房屋平面图 的文章

 

随机推荐