RegionMemberFunction[reg,…]
代表一个函数, 函数值给出是否一个点在区域 reg.
RegionMemberFunction
RegionMemberFunction[reg,…]
代表一个函数, 函数值给出是否一个点在区域 reg.
更多信息
- RegionMemberFunction 可以像 Function 一样的用.
- RegionMemberFunction 由 RegionMember[reg] 产生.
- RegionMemberFunction[reg,…][{x,y,…}] 给出 True,如果数值点 {x,y,…} 是不变区域 reg 的成员,其中 ConstantRegionQ[reg] 为 True.
范例
打开所有单元 关闭所有单元基本范例 (1)
区域的 RegionMember 生成一个 RegionMemberFunction:
mf = RegionMember[Disk[]]Map[mf, RandomReal[{-1, 1}, {10, 2}]]范围 (20)
特定区域 (5)
使用 RegionMember 生成一个 RegionMemberFunction:
ℛ = Polygon[{{0, 0}, {2, -1}, {1, 0}, {2, 1}}];
Region[ℛ]mf = RegionMember[ℛ]mf[{{1 / 2, 0}, {3, 4}}]pts = RandomVariate[UniformDistribution[RegionBounds[ℛ]], 10 ^ 3];
col = mf[pts] /. {False -> Gray, True -> Red};Graphics[{ℛ, AbsolutePointSize[1.6], {col, Point /@ pts}}]在 Interval 之内作点的检验:
ℛ = Interval[{0, 1}];
gr = NumberLinePlot[ℛ]mf = RegionMember[ℛ]pts = RandomVariate[UniformDistribution[{{-0.5, 1.5}}], 100];
col = mf[pts] /. {False -> Gray, True -> Red};gp = Graphics[{AbsolutePointSize[1.6], Table[{col[[i]], Point[{pts[[i, 1]], 3}]}, {i, 100}]}];Show[gr, gp, PlotRange -> All]在一个 Disk 内作点的检验:
ℛ = Disk[{0, 0}, 2];
Region[ℛ]mf = RegionMember[ℛ]pts = RandomVariate[UniformDistribution[RegionBounds[ℛ]], 10 ^ 3];
col = mf[pts] /. {False -> Gray, True -> Red};Graphics[{ℛ, AbsolutePointSize[1.6], {col, Point /@ pts}}]在 Cylinder 之内作点的检验:
ℛ = Cylinder[{{0, 0, 0}, {2, 2, 2}}, 2];
gr = Graphics3D[{Opacity[0.3], ℛ}, Boxed -> False, Lighting -> "Neutral"]mf = RegionMember[ℛ]pts = RandomVariate[UniformDistribution[RegionBounds[ℛ]], 10 ^ 3];
col = mf[pts] /. {False -> Gray, True -> Red};Show[gr, Graphics3D[{AbsolutePointSize[2], {col, Point /@ pts}}]]ℛ = Ball[{0, 0, 0, 0, 0, 0, 0}, 1];
pl = RandomReal[{0, 0.7}, {7, 7}];mf = RegionMember[ℛ];mf /@ pl公式区域 (3)
作为 ImplicitRegion 的两个圆盘的并集:
ℛ = ImplicitRegion[x^2 + y^2 ≤ 4∨(x - 3)^2 + y^2 ≤ 3, {x, y}];
DiscretizeRegion[ℛ, {{-6, 6}, {-2, 2}}]mf = RegionMember[ℛ]mf[{{1, 1}, {2, 2}}]pts = RandomVariate[UniformDistribution[RegionBounds[ℛ]], 10 ^ 4];
col = mf[pts] /. {False -> Gray, True -> Red};Graphics[{AbsolutePointSize[1], {col, Point /@ pts}}]作为 ImplicitRegion 的两个圆柱的并集:
ℛ = ImplicitRegion[x^2 + y^2 ≤ 2∨(x - 2)^2 + y^2 ≤ 1, {x, y, {z, 0, 2}}];
DiscretizeRegion[ℛ, {2{-2, 2}, {-2, 2}, {0, 2}}]mf = RegionMember[ℛ]pts = RandomVariate[UniformDistribution[RegionBounds[ℛ]], 10 ^ 4];
col = mf[pts] /. {False -> Gray, True -> Red};Graphics3D[{AbsolutePointSize[1.6], {col, Point /@ pts}}]表示成 ParametricRegion 的圆盘:
ℛ = ParametricRegion[{r Cos[θ], r Sin[θ]}, {{r, 0, 1}, {θ, 0, 2π}}];mf = RegionMember[ℛ]pts = RandomVariate[UniformDistribution[RegionBounds[ℛ]], 10 ^ 4];
col = mf[pts] /. {False -> Gray, True -> Red};Graphics[{AbsolutePointSize[1], {col, Point /@ pts}}]网格区域 (6)
在一维的 MeshRegion:
ℛ = DelaunayMesh[RandomReal[1, {10, 1}]]mf = RegionMember[ℛ]mf[{{1 / 2}, {3}}]ℛ = DelaunayMesh[RandomReal[2, {50, 2}]]mf = RegionMember[ℛ]pts = RandomVariate[UniformDistribution[RegionBounds[ℛ]], 10 ^ 4];
col = mf[pts] /. {False -> Gray, True -> Red};Graphics[{AbsolutePointSize[1], {col, Point /@ pts}}]ℛ = DelaunayMesh[RandomReal[1, {100, 3}]]mf = RegionMember[ℛ]pts = RandomVariate[UniformDistribution[RegionBounds[ℛ]], 10 ^ 4];
col = mf[pts] /. {False -> Gray, True -> Red};Graphics3D[{AbsolutePointSize[1], {col, Point /@ pts}}]在一维的 BoundaryMeshRegion:
ℛ = ConvexHullMesh[RandomReal[1, {10, 1}]]mf = RegionMember[ℛ]mf[{{1 / 2}, {3}}]ℛ = ConvexHullMesh[RandomReal[1, {50, 2}]]mf = RegionMember[ℛ]pts = RandomVariate[UniformDistribution[RegionBounds[ℛ]], 10 ^ 4];
col = mf[pts] /. {False -> Gray, True -> Red};Graphics[{AbsolutePointSize[1], {col, Point /@ pts}}]ℛ = ConvexHullMesh[RandomReal[1, {100, 3}]]mf = RegionMember[ℛ]MeshCoordinates 始终是区域的成员:
AllTrue[MeshCoordinates[ℛ], mf]导出区域 (2)
两个区域的 RegionIntersection:
ℛ = RegionIntersection[Disk[{0, 0}, 1], Disk[{0, 1}, 1]];Region[ℛ]mf = RegionMember[ℛ]mf[{{0, 1}, {3, 4}}]pts = RandomVariate[UniformDistribution[RegionBounds[ℛ]], 10 ^ 4];
col = mf[pts] /. {False -> Gray, True -> Red};Graphics[{AbsolutePointSize[1], {col, Point /@ pts}}]ℛ = TransformedRegion[Disk[{0, 0}, 1], ScalingTransform[{3, 2}]];DiscretizeRegion[ℛ, {{-3, 3}, {-2, 2}}]mf = RegionMember[ℛ]pts = RandomVariate[UniformDistribution[RegionBounds[ℛ]], 10 ^ 4];
col = mf[pts] /. {False -> Gray, True -> Red};Graphics[{AbsolutePointSize[1], {col, Point /@ pts}}]CSG 区域 (2)
二维空间中的 CSGRegion:
ℛ = CSGRegion["Difference", {Disk[], Disk[{1 / 2, 1 / 2}]}];mf = RegionMember[ℛ]pts = RandomVariate[UniformDistribution[RegionBounds[ℛ]], 10 ^ 4];
col = mf[pts] /. {False -> Gray, True -> Red};Graphics[{AbsolutePointSize[1], {col, Point /@ pts}}]三维空间中的 CSGRegion:
ℛ = CSGRegion["Difference", {Cube[3], Cuboid[{-1, -3, -1}, {3, 3, 3}]}];mf = RegionMember[ℛ]pts = RandomVariate[UniformDistribution[RegionBounds[ℛ]], 10 ^ 4];
col = mf[pts] /. {False -> Gray, True -> Red};Graphics3D[{AbsolutePointSize[1], {col, Point /@ pts}}]细分区域 (2)
二维空间中的 SubdivisionRegion:
ℛ = SubdivisionRegion[Rectangle[]];mf = RegionMember[ℛ]pts = RandomVariate[UniformDistribution[RegionBounds[ℛ]], 10 ^ 4];
col = mf[pts] /. {False -> Gray, True -> Red};Graphics[{AbsolutePointSize[1], {col, Point /@ pts}}]三维空间中的 SubdivisionRegion:
ℛ = SubdivisionRegion[Tetrahedron[]];mf = RegionMember[ℛ]pts = RandomVariate[UniformDistribution[RegionBounds[ℛ]], 10 ^ 4];
col = mf[pts] /. {False -> Gray, True -> Red};Graphics3D[{AbsolutePointSize[1], {col, Point /@ pts}}]应用 (3)
ℛ = BoundaryDiscretizeGraphics[CountryData["US", {"Polygon", "Equirectangular"}]];bounds = RegionBounds[ℛ];pts = RandomVariate[UniformDistribution[bounds], 10 ^ 4];mpts = Select[pts, RegionMember[ℛ]];Graphics[{AbsolutePointSize[1], Point[mpts]}]Subscript[ℛ, 1] = BoundaryDiscretizeGraphics[CountryData["US", {"Polygon", "Equirectangular"}]];
Subscript[ℛ, 2] = BoundaryDiscretizeGraphics[CountryData["Canada", {"Polygon", "Equirectangular"}]];mf1 = RegionMember[Subscript[ℛ, 1]];
mf2 = RegionMember[Subscript[ℛ, 2]];pts = RandomVariate[UniformDistribution[RegionBounds[RegionUnion[Subscript[ℛ, 1], Subscript[ℛ, 2]]]], 10 ^ 4];Graphics[{AbsolutePointSize[1], {Red, Point@Select[pts, mf1]}, {Blue, Point@Select[pts, mf2]}, {Black, Point@Select[pts, !mf1[#] && !mf2[#]&]}}]ℛ = ImplicitRegion[2 ≤ x^2 + y^2 ≤ 4, {x, y}];
mf = RegionMember[ℛ];
pts = Select[RandomVariate[UniformDistribution[RegionBounds[ℛ]], 10 ^ 5], mf];f[x_, y_] := x^3 + y^4;
intVal = Mean[f@@@pts] * RegionMeasure[ℛ]Integrate[f[x, y], {x, y}∈ℛ]%//N属性和关系 (1)
RegionMemberFunction 是由 RegionMember 生成的:
mf = RegionMember[Disk[{0, 0}, 1]]mf@RandomReal[1, {7, 2}]可能存在的问题 (1)
RegionMemberFunction 只能为 ConstantRegionQ 区域生成:
ℛ = Disk[{x, y}, r]ConstantRegionQ[ℛ]RegionMember[ℛ]mf = RegionMember[ℛ /. {x -> 0, y -> 2, r -> 1}]mf[{{0, 1}, {10, 10}}]相关指南
-
▪
- 区域属性和度量
文本
Wolfram Research (2014),RegionMemberFunction,Wolfram 语言函数,https://reference.wolfram.com/language/ref/RegionMemberFunction.html.
CMS
Wolfram 语言. 2014. "RegionMemberFunction." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/RegionMemberFunction.html.
APA
Wolfram 语言. (2014). RegionMemberFunction. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/RegionMemberFunction.html 年
BibTeX
@misc{reference.wolfram_2026_regionmemberfunction, author="Wolfram Research", title="{RegionMemberFunction}", year="2014", howpublished="\url{https://reference.wolfram.com/language/ref/RegionMemberFunction.html}", note=[Accessed: 02-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_regionmemberfunction, organization={Wolfram Research}, title={RegionMemberFunction}, year={2014}, url={https://reference.wolfram.com/language/ref/RegionMemberFunction.html}, note=[Accessed: 02-November-2026]}