ConvexHullMesh[{p1,p2,…}]
给出 BoundaryMeshRegion,表示来自点 p1、p2、… 的凸包.
ConvexHullMesh[mreg]
给出网格区域 mreg 的凸包.
ConvexHullMesh
ConvexHullMesh[{p1,p2,…}]
给出 BoundaryMeshRegion,表示来自点 p1、p2、… 的凸包.
ConvexHullMesh[mreg]
给出网格区域 mreg 的凸包.
更多信息和选项
- ConvexHullMesh 也称为凸包络或凸闭合.
- 凸包网格是包括点 pi 的最小凸集.
- 凸包边界由一维点、二维线段和三维凸多边形组成.
- ConvexHullMesh 可取的选项与 BoundaryMeshRegion 相同.
范例
打开所有单元 关闭所有单元基本范例 (3)
pts = RandomReal[{-1, 1}, {5, 1}];ConvexHullMesh[pts]Show[%, Show[%, Graphics[Point[Append[#, 0]& /@ pts]]]]pts = RandomReal[{-1, 1}, {50, 2}];ConvexHullMesh[pts]Show[%, Graphics[Point[pts]]]pts = RandomReal[{-1, 1}, {50, 3}];ConvexHullMesh[pts]Show[HighlightMesh[%, Style[2, Opacity[0.5]]], Graphics3D[Point[pts]]]范围 (3)
pts = RandomReal[{-1, 1}, {50, 1}];ℛ = ConvexHullMesh[pts]{RegionQ[ℛ], BoundaryMeshRegionQ[ℛ]}{BoundedRegionQ[ℛ], RegionBounds[ℛ]}{RegionDimension[ℛ], RegionEmbeddingDimension[ℛ]}{RegionMeasure[ℛ], RegionCentroid[ℛ]}RegionMember[ℛ, {0}]{RegionDistance[ℛ, {2}], RegionNearest[ℛ, {2}]}pts = RandomReal[{-1, 1}, {50, 2}];ℛ = ConvexHullMesh[pts]{RegionQ[ℛ], BoundaryMeshRegionQ[ℛ]}{BoundedRegionQ[ℛ], RegionBounds[ℛ]}{RegionDimension[ℛ], RegionEmbeddingDimension[ℛ]}{RegionMeasure[ℛ], RegionCentroid[ℛ]}RegionMember[ℛ, {0, 0}]{RegionDistance[ℛ, {2, 2}], RegionNearest[ℛ, {2, 2}]}pts = RandomReal[{-1, 1}, {50, 3}];ℛ = ConvexHullMesh[pts]{RegionQ[ℛ], BoundaryMeshRegionQ[ℛ]}{BoundedRegionQ[ℛ], RegionBounds[ℛ]}{RegionDimension[ℛ], RegionEmbeddingDimension[ℛ]}{RegionMeasure[ℛ], RegionCentroid[ℛ]}Area[RegionBoundary[ℛ]]RegionMember[ℛ, {0, 0, 0}]{RegionDistance[ℛ, {2, 2, 2}], RegionNearest[ℛ, {2, 2, 2}]}选项 (13)
MeshCellHighlight (3)
MeshCellHighlight 允许指定 ConvexHullMesh 的高亮部分:
ConvexHullMesh[{{0, 0}, {1, 0}, {0, 1}, {1, 1}}, MeshCellHighlight -> {{1, All} -> Orange, {0, All} -> Green}]通过使表面透明,可以看见三维 ConvexHullMesh 的内部结构:
ConvexHullMesh[{{0, 0, 0}, {1, 0, 0}, {0, 1, 0}, {0, 0, 1}, {1, 1, 0}}, MeshCellHighlight -> {{2, All} -> Opacity[0.5, Orange]}]ConvexHullMesh[{{0, 0}, {1, 0}, {0, 1}, {1, 1}}, MeshCellHighlight -> {{1, 1} -> {Thick, Orange}, {1, 2} -> {Dashed, Green}}]ConvexHullMesh[{{0, 0}, {1, 0}, {0, 1}, {1, 1}}, MeshCellHighlight -> {Line[{1, 2}] -> {Thick, Orange}, Line[{2, 4}] -> {Dashed, Green}}]MeshCellLabel (2)
MeshCellLabel 可用于标记部分 ConvexHullMesh:
ConvexHullMesh[{{0, 0}, {1, 0}, {0, 1}, {1, 1}}, MeshCellLabel -> {0 -> "Index"}]ConvexHullMesh[{{0, 0}, {1, 0}, {0, 1}, {1, 1}}, MeshCellLabel -> {{1, 1} -> "x", {1, 2} -> "y"}]ConvexHullMesh[{{0, 0}, {1, 0}, {0, 1}, {1, 1}}, MeshCellLabel -> {Line[{1, 2}] -> "x", Line[{2, 4}] -> "y"}]MeshCellMarker (1)
MeshCellMarker 可用于给部分 ConvexHullMesh 进行赋值:
ConvexHullMesh[{{0, 0}, {1, 0}, {0, 1}, {1, 1}}, MeshCellMarker -> {{0, 1} -> 1, {0, 2} -> 2, {0, 3} -> 3, {0, 4} -> 4}]使用 MeshCellLabel 显示标记:
ConvexHullMesh[{{0, 0}, {1, 0}, {0, 1}, {1, 1}}, MeshCellMarker -> {{0, 1} -> 1, {0, 2} -> 2, {0, 3} -> 3, {0, 4} -> 4}, MeshCellLabel -> {0 -> "Marker"}]MeshCellShapeFunction (2)
MeshCellShapeFunction 允许指定部分 ConvexHullMesh 的函数:
ConvexHullMesh[{{0, 0}, {1, 0}, {0, 1}, {1, 1}}, MeshCellShapeFunction -> {0 -> (Disk[#, .1]&)}]ConvexHullMesh[{{0, 0}, {1, 0}, {0, 1}, {1, 1}}, MeshCellShapeFunction -> {{0, 1} -> (Disk[#, .1]&), {0, 2} -> (Disk[#, {.1, .2}]&)}]ConvexHullMesh[{{0, 0}, {1, 0}, {0, 1}, {1, 1}}, MeshCellShapeFunction -> {Point[1] -> (Disk[#, .1]&), Point[2] -> (Disk[#, {.1, .2}]&)}]MeshCellStyle (3)
MeshCellStyle 允许指定部分 ConvexHullMesh 的样式:
ConvexHullMesh[{{0, 0}, {1, 0}, {0, 1}, {1, 1}}, MeshCellStyle -> {{1, All} -> Orange, {0, All} -> Green}]通过使表面透明,可以看见三维 ConvexHullMesh 的内部结构:
ConvexHullMesh[{{0, 0, 0}, {1, 0, 0}, {0, 1, 0}, {0, 0, 1}, {1, 1, 0}}, MeshCellStyle -> {{2, All} -> Opacity[0.5, Orange]}]ConvexHullMesh[{{0, 0}, {1, 0}, {0, 1}, {1, 1}}, MeshCellStyle -> {{1, 1} -> {Thick, Orange}, {1, 2} -> {Dashed, Green}}]ConvexHullMesh[{{0, 0}, {1, 0}, {0, 1}, {1, 1}}, MeshCellStyle -> {Line[{1, 2}] -> {Thick, Orange}, Line[{2, 4}] -> {Dashed, Green}}]应用 (2)
ℛ = DiscretizeGraphics[PolyhedronData["TetrahedronFiveCompound"]]ConvexHullMesh[MeshCoordinates[ℛ]]cowPoints = ExampleData[{"Geometry3D", "Cow"}, "VertexData"];cowvexHull = ConvexHullMesh[cowPoints];cow = ExampleData[{"Geometry3D", "Cow"}, "Graphics3D"];Show[HighlightMesh[cowvexHull, {Style[1, {Brown}], Style[2, Opacity[0.3, Brown]]}], cow]属性和关系 (3)
ConvexHullMesh 实际上是 DelaunayMesh 的 BoundaryMesh:
pts = RandomReal[1, {5, 2}];{BoundaryMesh[DelaunayMesh[pts]], ConvexHullMesh[pts]}pts = RandomReal[{-1, 1}, {50, 3}];{BoundaryMesh[DelaunayMesh[pts]], ConvexHullMesh[pts]}使用 DelaunayMesh 得到凸包内部的德劳内三角化:
DelaunayMesh[RandomReal[1, {25, 2}]]使用 TriangulateMesh 控制内部的三角化:
ℛ = ConvexHullMesh[RandomReal[1, {25, 2}]];{TriangulateMesh[ℛ], TriangulateMesh[ℛ, MaxCellMeasure -> ∞]}可能存在的问题 (1)
ConvexHullMesh 仅返回全维度网格区域:
ConvexHullMesh[{{0., 0.}, {1., 0.}}]使用 ConvexHullRegion 获取凸包:
ConvexHullRegion[{{0., 0.}, {1., 0.}}]文本
Wolfram Research (2014),ConvexHullMesh,Wolfram 语言函数,https://reference.wolfram.com/language/ref/ConvexHullMesh.html (更新于 2020 年).
CMS
Wolfram 语言. 2014. "ConvexHullMesh." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2020. https://reference.wolfram.com/language/ref/ConvexHullMesh.html.
APA
Wolfram 语言. (2014). ConvexHullMesh. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/ConvexHullMesh.html 年
BibTeX
@misc{reference.wolfram_2026_convexhullmesh, author="Wolfram Research", title="{ConvexHullMesh}", year="2020", howpublished="\url{https://reference.wolfram.com/language/ref/ConvexHullMesh.html}", note=[Accessed: 17-August-2026]}
BibLaTeX
@online{reference.wolfram_2026_convexhullmesh, organization={Wolfram Research}, title={ConvexHullMesh}, year={2020}, url={https://reference.wolfram.com/language/ref/ConvexHullMesh.html}, note=[Accessed: 17-August-2026]}