matlab 绘制三维空间隐函数自由曲面
1.简介
本博客介绍了一个常用于三维隐函数绘制的函数,利用自由曲面-球面为事例,介绍该函数的用法。
本功能实现主要的两个函数
isofurface
patch
其实主要是第一个函数有用
2.isosurface介绍
matlab2014a 版给的函数介绍:
isosurface Isosurface extractor.
FV = isosurface(X,Y,Z,V,ISOVALUE) computes isosurface geometry for
data V at isosurface value ISOVALUE. Arrays (X,Y,Z) specify the points
at which the data V is given. The struct FV contains the faces and
vertices of the isosurface and can be passed directly to the PATCH
command.
FV = isosurface(V,ISOVALUE) assumes [X Y Z] = meshgrid(1:N, 1:M, 1:P)
where [M,N,P]=SIZE(V).
FV = isosurface(X,Y,Z,V) or FV = isosurface(V) selects an
isosurface value automatically using the histogram of the
data.
FVC = isosurface(…, COLORS) interpolates the array COLORS onto
the scalar field and returns the interpolated values in
facevertexcdata. The size of the COLORS array must be the same
as V.
FV = isosurface(…, ‘noshare’) does not attempt to create
shared vertices. This is faster, but produces a larger set of
vertices.
FV = isosurface(…, ‘verbose’) prints progress messages to the
command window as the computation progresses.
[F, V] = isosurface(…) or [F, V, C] = isosurface(…)
returns the faces and vertices (and facevertexcdata) in
separate arrays instead of a struct.
isosurface(…) With no output arguments, a patch is created
into the current axes with the computed faces and vertices.
If no current axes exists, a new axes will be created with
a 3-D view and appropriate lighting.
简而言之
isosurface适用于三维隐函数图像的绘制。
简单用法isosurface(x,y,z,v,isovalue);
其中v是关于网格数据x,y,z的体数据,isovalue是对应于v的水平基下的关联数据,
也就是v=? 可以看下面例子更好理解;
3.画球
空间画球很简单
球面方程 x^2 + y^2 + z^2 = R^2 = 1 以单位球为例子
% code by Coom
[x,y,z] = meshgrid(-1:0.1:1); % 设置范围
f = (x.^2+y.^2+z.^2 - 1); % 球面方程
p = patch(isosurface(x,y,z,f,0)); %隐函数绘图
set(p,'FaceVertexCData',jet(size(get(p,'faces'),1)) ,'FaceColor', 'flat', 'EdgeColor', 'black'); %设置显示样式
view(3);
axis equal;
grid on;
4.后续更改和自定义绘图
由于可能黑边可能不能满足一些论文图片,需要进行更改。
涉及到这个问题首先就要清楚一些matlab中颜色的信息。
首先jet这些,
上面颜色组信息是matlab内置的颜色组,在上面画球使用的便是jet组。颜色组可以随意更改
为了更为直观的阐述作用
将上述函数改为
% code by Coom
% code by Coom
[x,y,z] = meshgrid(-1:0.1:1);
f = (x.^2+y.^2 +z.^2- 1);
[ff,vv]= isosurface(x,y,z,f,0);
p=patch('Faces',ff,'Vertices',vv,'CData',vv(:,3),'facecolor','flat','EdgeColor','black','edgealpha',0.1)
% set(p,'FaceVertexCData',jet(size(get(p,'faces'),1)) ,'FaceColor', 'flat', 'EdgeColor', 'black');
view(3);
axis equal;
grid on;
其中的属性
facecolor 表示面颜色 可以设置flat,或者其他的颜色,‘b’-蓝色,‘r’-红色用法和plot中的颜色设置一样
edgecolor 表示边颜色,如果觉得黑边不好看,可以换成任意颜色,也可以设置成flat,设置成none删掉边颜色,任意颜色的设置可以利用矩阵来设置,[0 0 0]表示黑色 [1 1 1]表示白色
此外还可以从上面看出
另外一种自定义属性为是edgealpha 是设置透明度的,0为完全透明,1为完全不透明。下面是黑边0.1的透明度效果。更多功能需要自定义组合来看
此外,欢迎关注公众号 ‘一匹大懒虫’ ,里面有一些软件资源和matlab基础教程,以及写的代码和相关文档。
matlab 绘制三维空间隐函数自由曲面相关推荐
- matlab绘制三维隐函数图像
matlab中三维隐函数绘制函数:fimplicit3 520这个日子,我们就用matlab的三元隐函数绘图来绘制一个小爱心: 已知条件: 源代码: %绘制三元隐函数 f=@(x,y,z) (x.^2 ...
- matlab隐函数画三维图,MATLAB绘制3D隐函数曲面的几种方法
背景介绍 Matlab提供了一系列绘图函数,常见的包括绘制2D曲线的plot函数.绘制2D隐函数曲线的ezplot函数.绘制3D曲面的mesh和surf函数.绘制3D显函数曲面的ezmesh和ezsu ...
- 使用Matlab绘制三维空间中的任意圆(参数方程/坐标转换)
要实现的绘图效果: 问题分析: 首先,要明确定义三维空间中的圆需要哪些参数: 给定圆所在平面(空间中的平面可以用点法式给定,即给定平面上一点和平面在该点处的法向量) 给定圆心位置(三维空间中的点的坐标 ...
- matlab如何绘制三维隐函数?
今天高等数学与提高课程上一道数学拔高题 设直线L0:x=y=z,L1:x−1=−y=z,L_0:x=y=z,L_1:x-1=-y=z,L0:x=y=z,L1:x−1=−y=z,求L1L_1L1绕 ...
- matlab绘制三维图形
原文地址:matlab绘制三维图形 作者:hotinko1 三维曲线 plot3函数与plot函数用法十分相似,其调用格式为: plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,-,xn ...
- 如何用matlab绘制心形线,心形线的matlab程序
cosθ的心形线图像 图 2 ρ = 0.5 + cosθ的心形线图像 图 5 ρ = 1 ? cosθ的心形线图像 Matlab 绘制,附代码: theta=0:0.1:2*pi; rho1=1-. ...
- matlab绘制心形函数
matlab 7.0 绘制二维.三维心形函数 又到周六,下周就要迎来春节小长假了,想想都有些激动.在外漂了一整年,总于可以回家和父母团聚了,还有吃好吃的...,哎呀~想想都流口水呢.不过先不要激动,假 ...
- matlab ploty,matlab绘制函数 如何利用matlab的ploty
最近有网友提出"matlab绘制函数 如何利用matlab的ploty"等问题,小小知识站提取了各大知名网站有关"matlab绘制函数 如何利用matlab的ploty& ...
- cosh matlab中怎么写,用MATLAB绘制cosh函数
matlab如何绘制参数函数的图像? clear;clc;s=0:0.1:pi/2;t=0:0.1:3*pi/2;[s,t]=meshgrid(s,t);x=cos(s).*cos(t);y=cos( ...
最新文章
- 自学python能干些什么副业好-安利1个副业,不限专业,有人一天赚了2万…
- systemctl和service
- SystemTap工具的使用基础
- ip addr 相关操作
- obs可以装手机吗?_原神PC和手机数据互通吗 PC和手机可以一起玩吗
- html5视频播放器使用,视频站启用html5播放器
- java maven是做什么的_maven是干什么用的
- win10查看桌面壁纸路径
- HDU 6287 口算训练
- Centos7 Failed to start xxx.service: Unit not found
- 计算机24游戏怎么玩,外媒评24款史上最好玩的策略游戏 投身宏伟场景玩到爆
- C语言输入10个分数 去掉最高分,vb输入10个评委给出的分数,去掉最高分和最低分,计算平均分并输出...
- 批处理修改注册表调整输入法
- 区块链成热点赛道,云技术如何赋能结合?
- 随机种子 seed()
- 初级通信专业技术考试大纲
- 处理医疗影像的Python利器:PyDicom
- 【SPSS】单样本T检验分析详细操作教程(附案例实战)
- 百度校园招聘历年经典面试题汇总:Java开发岗
- Unity 游戏框架搭建 2019 (四十二) MonoBehaviour 简化