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 绘制三维空间隐函数自由曲面相关推荐

  1. matlab绘制三维隐函数图像

    matlab中三维隐函数绘制函数:fimplicit3 520这个日子,我们就用matlab的三元隐函数绘图来绘制一个小爱心: 已知条件: 源代码: %绘制三元隐函数 f=@(x,y,z) (x.^2 ...

  2. matlab隐函数画三维图,MATLAB绘制3D隐函数曲面的几种方法

    背景介绍 Matlab提供了一系列绘图函数,常见的包括绘制2D曲线的plot函数.绘制2D隐函数曲线的ezplot函数.绘制3D曲面的mesh和surf函数.绘制3D显函数曲面的ezmesh和ezsu ...

  3. 使用Matlab绘制三维空间中的任意圆(参数方程/坐标转换)

    要实现的绘图效果: 问题分析: 首先,要明确定义三维空间中的圆需要哪些参数: 给定圆所在平面(空间中的平面可以用点法式给定,即给定平面上一点和平面在该点处的法向量) 给定圆心位置(三维空间中的点的坐标 ...

  4. 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​绕 ...

  5. matlab绘制三维图形

    原文地址:matlab绘制三维图形 作者:hotinko1 三维曲线 plot3函数与plot函数用法十分相似,其调用格式为: plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,-,xn ...

  6. 如何用matlab绘制心形线,心形线的matlab程序

    cosθ的心形线图像 图 2 ρ = 0.5 + cosθ的心形线图像 图 5 ρ = 1 ? cosθ的心形线图像 Matlab 绘制,附代码: theta=0:0.1:2*pi; rho1=1-. ...

  7. matlab绘制心形函数

    matlab 7.0 绘制二维.三维心形函数 又到周六,下周就要迎来春节小长假了,想想都有些激动.在外漂了一整年,总于可以回家和父母团聚了,还有吃好吃的...,哎呀~想想都流口水呢.不过先不要激动,假 ...

  8. matlab ploty,matlab绘制函数 如何利用matlab的ploty

    最近有网友提出"matlab绘制函数 如何利用matlab的ploty"等问题,小小知识站提取了各大知名网站有关"matlab绘制函数 如何利用matlab的ploty& ...

  9. 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( ...

最新文章

  1. 自学python能干些什么副业好-安利1个副业,不限专业,有人一天赚了2万…
  2. systemctl和service
  3. SystemTap工具的使用基础
  4. ip addr 相关操作
  5. obs可以装手机吗?_原神PC和手机数据互通吗 PC和手机可以一起玩吗
  6. html5视频播放器使用,视频站启用html5播放器
  7. java maven是做什么的_maven是干什么用的
  8. win10查看桌面壁纸路径
  9. HDU 6287 口算训练
  10. Centos7 Failed to start xxx.service: Unit not found
  11. 计算机24游戏怎么玩,外媒评24款史上最好玩的策略游戏 投身宏伟场景玩到爆
  12. C语言输入10个分数 去掉最高分,vb输入10个评委给出的分数,去掉最高分和最低分,计算平均分并输出...
  13. 批处理修改注册表调整输入法
  14. 区块链成热点赛道,云技术如何赋能结合?
  15. 随机种子 seed()
  16. 初级通信专业技术考试大纲
  17. 处理医疗影像的Python利器:PyDicom
  18. 【SPSS】单样本T检验分析详细操作教程(附案例实战)
  19. 百度校园招聘历年经典面试题汇总:Java开发岗
  20. Unity 游戏框架搭建 2019 (四十二) MonoBehaviour 简化

热门文章

  1. 自动发qq空间说说python脚本
  2. 一个定时器实现IO模拟pwm,呼吸灯效果
  3. java 输出hello
  4. 什么是拓扑(Topology) - 3D 角色 建模过程中的 中的术语:拓扑
  5. 网络常见面试题总结(三)
  6. Python自用手册
  7. Translation Equivariance
  8. shell-shell概述
  9. 【语音识别】基于MFCC的小波变换DTW实现说话人识别matlab代码
  10. 张栋博士计算机,计算机科学与技术学院