MeshRegion
MeshRegion[{p1,p2,…},{mcell1[{i1,…}],mcell2[{j1,…}],…}]
产生具有单元 mcellj 的网格,其中由整数 i 给出的坐标为 pi.
MeshRegion[…,{…,wi[mcelli[…]],…}]
产生具有由符号式封装 wi 定义的单元属性的网格.
MeshRegion[mreg,opts]
从网格区域 mreg 中产生一个网格,选项为 opts.
更多信息和选项
- MeshRegion 也称为单纯复形或者单元复形.
- MeshRegion 可以表示在一维、二维或者三维空间中嵌入的任意几何维度的分段线性区域.
- MeshRegion[…] 在笔记本中显示为网格区域图线.
- MeshRegion 通常使用诸如 DelaunayMesh、DiscretizeGraphics 和 DiscretizeRegion 等函数创建.
- 由 MeshRegion 表示的区域包含网格单元的不相交并集.
- MeshRegion 具有嵌入式维度,等于每个点 pi 的长度,并且可以使用 RegionEmbeddingDimension 求解.
- 每个单元具有几何维度,并且可以使用 RegionDimension 找到.
- 可能的网格单元 mcelli 和它们的几何维度:
-
Point[i] 0 点 Line[{i1,i2,…}] 1 线段 {i1,i2}, {i2,i3}, … Triangle[{i1,i2,i3}] 2 实心三角形 Polygon[{i1,i2,…}] 2 实心多边形 Polyhedron[{{ii,i2,…},…}] 3 实心多面体 Tetrahedron[{i1,…,i4}] 3 实心四面体 Hexahedron[{i1,…,i8}] 3 实心六面体 Pyramid[{i1,…,i5}] 3 实心角锥体 Prism[{i1,…,i6}] 3 实心角柱体 Simplex[{i1,…,ik}] 0, 1, 2, 3 实心单纯形 - Tetrahedron、Hexahedron、Pyramid 和 Prism 只能和三维坐标一起使用.
- Point、Line、Triangle、Polygon、Polyhedron、Tetrahedron、Hexahedron、Pyramid、Prism 和 Simplex 都有多单元规范.
- 可将下面特殊封装 wi 用于单元:
-
Labeled[cell,…] 显示 cell 时加上标签 Style[cell,…] 以指定样式显示 cell Annotation[cell,namevalue] 将注释 name->value 和 cell 关联起来 - MeshRegion 中的每一个单元都被赋予一个特殊的 MeshCellIndex,形式为 {d,i},其中 d 为几何维度,i 为索引.
- 可使用下列单元规范来选定 MeshRegion 中的单元:
-
{d,i} 维度为 d,索引为 i 的单元 {d,ispec} 维度为 d,索引规范为 ispec 的单元 {dspec,…} 维度为 dspec 的单元 h[{i1,…}] 以 h 开头,顶点索引为 i1, … 的单元 {c1,c2,…} 单元列表 ci - 单元规范 ispec 的形式为:
-
i 单元索引 i {i1,i2,…} 单元索引 ik All 所有索引 patt 单元的索引符合格式 patt - 维度规范 dspec 的形式为:
-
d 维度 d All 从 0 到区域自身几何维度的所有维度 patt 符合格式 patt 的维度 - MeshRegion 总是被转换为优化的表示,为了模式匹配被函数像 AtomQ 按原始处理.
- 在嵌入维度为 2 时,MeshRegion 和 Graphics 有同样的选项,在嵌入维度为 3 时,和 Graphics3D 有同样的选项,其不同之处及更多选项如下所示:
-
MeshCellLabel Automatic 单元标签及其位置 MeshCellShapeFunction Automatic 单元的形状函数 MeshCellStyle Automatic 单元的样式 MeshCellHighlight {} 突出显示单元的列表 MeshCellMarker 0 单元的整数标记 PlotTheme $PlotTheme 网格的整体主题样式 - PlotTheme 的可能设置包括常见的基本主题样式、以不同字体为特征的主题和以不同大小为特征的主题.
- 网格的主题特征会影响到网格单元的绘制. 主题包括:
-
"Points" 0 维单元 "Lines" 1 维单元,线网 "Polygons" 2 维单元 - 主题的渲染会影响到网格的渲染. 主题包括:
-
"SampledPoints" 网格单元的抽样点 "SphereAndTube" 把点显示为球形,把线显示为管状 "SmoothShading" 平滑色调 "FaceNormals" 显示二维单元的法线 "LargeMesh" 优化成适宜于显示网格单元多的情况 - 单元样式及规范实际上以如下次序应用到单元上:MeshCellStyle、Style、其他封装,后面的规范会覆盖前面的设定.
- 单元标签样式和其他规范实际上以如下次序应用到单元上:MeshCellLabel、Labeled,后面的规范会覆盖前面的设定.
- MeshRegion 可以和某些函数一起使用,比如 RegionMember、RegionDistance、RegionMeasure 和 NIntegrate.
范例
打开所有单元关闭所有单元基本范例 (6)
DelaunayMesh 生成的三维立体网格区域:
范围 (41)
一维区域 (3)
严格的 0 维 MeshRegion 是点的集合:
用 HighlightMesh 标注各个点:
严格的 1 维 MeshRegion 是一组线段:
用 HighlightMesh 标注各个线段:
MeshRegion 可以将不同维度的元素合并起来:
用 DimensionalMeshComponents 将其分开:
二维区域 (4)
严格的 0 维 MeshRegion 是点的集合:
用 HighlightMesh 标注各个点:
严格的 1 维 MeshRegion 是一组线段:
用 HighlightMesh 标注各个线段:
严格的 2 维 MeshRegion 是一组多边平面:
用 HighlightMesh 标注各个面:
MeshRegion 可以将不同维度的元素合并起来:
用 DimensionalMeshComponents 将其分开:
三维区域 (5)
严格的 0 维 MeshRegion 是点的集合:
用 HighlightMesh 标注各个点:
严格的 1 维 MeshRegion 是一组线段:
用 HighlightMesh 标注各个线段:
严格的 2 维 MeshRegion 是一组多边平面:
用 HighlightMesh 标注各个面:
严格的 3 维 MeshRegion 是一组多面体:
多面体单元包括 Tetrahedron、Prism、Pyramid 和 Hexahedron:
MeshRegion 可以将不同维度的元素合并起来:
外观呈现 (11)
MeshCellLabel 可用来标注 MeshRegion 的各个组成部分:
创建 MeshRegion 时,可用 Labeled 作为封装来标注单元:
MeshCellMarker 可用来标记 MeshRegion 的各个组成部分:
MeshCellStyle 可用来设置 MeshRegion 各组成部分的 Style:
创建 MeshRegion 时,可用 Style 作为封装来设置单元的样式:
区域属性 (8)
网格属性 (10)
MeshCellCount 返回与给定维度或者单元指定匹配的单元数目:
MeshCells 返回网格中与单元指定或者给定维度匹配的单元:
MeshCellIndex 获取网格中单元或者单元集合的索引:
MeshCoordinates 获取网格坐标:
坐标列表是 MeshCells 所指的内容:
MeshPrimitives 返回组成网格的基元:
DimensionalMeshComponents 分隔具有不同维度的网格的分量:
ConnectedMeshComponents 基于连通度分隔网格的分量:
MeshCellMeasure 可用于获取网格中单元集合的度量:
MeshCellCentroid 可用于获取网格中单元集合的几何中心:
MeshCellQuality 可用于获取网格中单元集合的质量:
选项 (114)
AlignmentPoint (1)
指定三维 Inset 中要对齐的位置,使用 坐标:
AspectRatio (1)
使用数值来指定 AspectRatio:
BaselinePosition (3)
ImageMargins (3)
MeshCellHighlight (3)
可以用 MeshCellHighlight 来突出显示 MeshRegion 的某些部分:
将面设为透明,以便看清三维 MeshRegion 的内部结构:
MeshCellLabel (3)
MeshCellMarker (1)
MeshCellMarker 可以用于对 MeshRegion 的各部分赋值:
使用 MeshCellLabel 显示记号:
MeshCellShapeFunction (2)
MeshCellStyle (3)
可以用 MeshCellStyle 来指定 MeshRegion 各部分的样式:
通过将面变成透明,可以看清三维 MeshRegion 的内部结构:
PlotLabel (2)
PlotRange (3)
PlotRangePadding (3)
PlotRegion (3)
PlotTheme (9)
SphericalRegion (2)
应用 (9)
曲线 (4)
从 MeshRegion 中提取线段制成线框网格:
MeshCells 中给出的索引对应于 MeshCoordinates:
利用 Lindenmayer 系统,创建 Koch 曲线的网格区域:
找出一个公式,可以计算 Koch 曲线迭代次数为 时的长度:
把图转化为 MeshRegion:
曲面 (3)
直接产生矩形网格. 这里 IndexFlatten 用与 Flatten 相同的方式压平位置索引
立体 (2)
直接产生矩形网格. 这里 IndexFlatten 以 Flatten 同样的方式压平位置索引:
属性和关系 (9)
MeshRegion 可以含有任意几何维度:
MeshRegion 通常有界:
使用 BoundedRegionQ 测试,并且使用 RegionBounds 测试实际边界:
MeshRegionQ 可用于测试一个区域是否是 MeshRegion:
使用 DelaunayMesh 从点集创建 MeshRegion:
使用 TriangulateMesh 把 BoundaryMeshRegion 转化为 MeshRegion:
使用 DiscretizeRegion 把任意区域转化为 MeshRegion:
使用 DiscretizeGraphics 把 Graphics 转化为 MeshRegion:
使用 Show 把任意 MeshRegion 转化为 Graphics:
MeshRegion 通常比 BoundaryMeshRegion 具有更高的内存使用量:
文本
Wolfram Research (2014),MeshRegion,Wolfram 语言函数,https://reference.wolfram.com/language/ref/MeshRegion.html (更新于 2022 年).
CMS
Wolfram 语言. 2014. "MeshRegion." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2022. https://reference.wolfram.com/language/ref/MeshRegion.html.
APA
Wolfram 语言. (2014). MeshRegion. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/MeshRegion.html 年