RegionDisjoint[reg1,reg2]
如果区域 reg1 和 reg2 是不相交的,返回 True.
RegionDisjoint[reg1,reg2,reg3,…]
如果区域 reg1、reg2、reg3、… 两两不相交,返回 True.
RegionDisjoint
RegionDisjoint[reg1,reg2]
如果区域 reg1 和 reg2 是不相交的,返回 True.
RegionDisjoint[reg1,reg2,reg3,…]
如果区域 reg1、reg2、reg3、… 两两不相交,返回 True.
更多信息和选项
- 如果没有点同时属于 reg1 和 reg2,则区域 reg1 和 reg2 是不相交的.
- 如果所有 regi 是不含参数的区域,即 ConstantRegionQ[regi] 为 True,则区域为点集,通常返回 True 或 False.
- 如果有些 regi 和参数有关,即 ConstantRegionQ[regi] 为 False,则 regi 表示一组区域,RegionDisjoint 将会计算使得区域不相交的参数条件.
- 可以给出下列选项:
-
Assumptions $Assumptions 关于参数的假设 GenerateConditions False 是否产生关于参数的条件
范例
打开所有单元 关闭所有单元基本范例 (2)
Subscript[ℛ, 1] = Triangle[];
Subscript[ℛ, 2] = Disk[{1, 1}, 1 / 2];RegionDisjoint[Subscript[ℛ, 1], Subscript[ℛ, 2]]Graphics[{Opacity[0.5], {Red, Subscript[ℛ, 1]}, {Green, Subscript[ℛ, 2]}}]Subscript[ℛ, 1] = Annulus[];
Subscript[ℛ, 2] = ImplicitRegion[Subsuperscript[r, 1, 2] ≤ x^2 + y^2 ≤ Subsuperscript[r, 2, 2], {x, y}];RegionDisjoint[Subscript[ℛ, 1], Subscript[ℛ, 2]]范围 (17)
基本用途 (5)
Subscript[ℛ, 1] = Rectangle[];
Subscript[ℛ, 2] = Disk[{2, 2}, 1];RegionDisjoint[Subscript[ℛ, 1], Subscript[ℛ, 2]]Graphics[{Opacity[0.5], {Red, Subscript[ℛ, 1]}, {Green, Subscript[ℛ, 2]}}]Subscript[ℛ, 1] = Rectangle[];
Subscript[ℛ, 2] = Disk[];RegionDisjoint[Subscript[ℛ, 1], Subscript[ℛ, 2]]Graphics[{Opacity[0.5], {Red, Subscript[ℛ, 1]}, {Green, Subscript[ℛ, 2]}}]Subscript[ℛ, 1] = Disk[{x, y}];
Subscript[ℛ, 2] = Annulus[];RegionDisjoint[Subscript[ℛ, 1], Subscript[ℛ, 2]]Subscript[ℛ, 1] = Disk[{-2, 1}];
Subscript[ℛ, 2] = Disk[];
Subscript[ℛ, 3] = Disk[{2, 1}];RegionDisjoint[Subscript[ℛ, 1], Subscript[ℛ, 2], Subscript[ℛ, 3]]Graphics[{Opacity[0.5], {Red, Subscript[ℛ, 1]}, {Green, Subscript[ℛ, 2]}, {Blue, Subscript[ℛ, 3]}}]Subscript[ℛ, 1] = Disk[{-1, 1}];
Subscript[ℛ, 2] = Disk[];
Subscript[ℛ, 3] = Disk[{2, 1}];RegionDisjoint[Subscript[ℛ, 1], Subscript[ℛ, 2], Subscript[ℛ, 3]]Graphics[{Opacity[0.5], {Red, Subscript[ℛ, 1]}, {Green, Subscript[ℛ, 2]}, {Blue, Subscript[ℛ, 3]}}]基本区域 (4)
RegionDisjoint[Line[{{0}, {1}}], Interval[{2, 4}]]RegionDisjoint[Point[{2}], Interval[{1, 3}]]Ball:
RegionDisjoint[Ball[1], Interval[{2, 3}]]RegionDisjoint[InfiniteLine[{0}, {1}], InfiniteLine[{-3}, {1}]]含有 Point 的
中的区域:
Subscript[ℛ, 1] = Point[RandomReal[1, {10, 2}]];
Subscript[ℛ, 2] = Point[RandomReal[1, {10, 2}]];RegionDisjoint[Subscript[ℛ, 1], Subscript[ℛ, 2]]Graphics[{{Red, Subscript[ℛ, 1]}, {Green, Subscript[ℛ, 2]}}]Line:
Subscript[ℛ, 1] = Line[{{0, 0}, {1, 1}}];
Subscript[ℛ, 2] = Line[RandomReal[1, {10, 2}]];RegionDisjoint[Subscript[ℛ, 1], Subscript[ℛ, 2]]Graphics[{{Red, Subscript[ℛ, 1]}, {Green, Subscript[ℛ, 2]}}]Subscript[ℛ, 1] = Polygon[{{1, 1 / 2}, {0, 3 / 2}, {-1 / 2, 1 / 2}, {0, 11 / 10}}];
Subscript[ℛ, 2] = Triangle[];RegionDisjoint[Subscript[ℛ, 1], Subscript[ℛ, 2]]Graphics[{Opacity[0.5], {Red, Subscript[ℛ, 1]}, {Green, Subscript[ℛ, 2]}}]Subscript[ℛ, 1] = Disk[];
Subscript[ℛ, 2] = Ellipsoid[{1, 0}, {3, 2}];RegionDisjoint[Subscript[ℛ, 1], Subscript[ℛ, 2]]RegionDisjoint[Rectangle[{x, y}], RegularPolygon[4]]含有 Point 的
中的区域:
Subscript[ℛ, 1] = Point[RandomReal[1, {10, 3}]];
Subscript[ℛ, 2] = Point[RandomReal[1, {10, 3}]];RegionDisjoint[Subscript[ℛ, 1], Subscript[ℛ, 2]]Line:
Subscript[ℛ, 1] = Line[RandomReal[1, {10, 3}]];
Subscript[ℛ, 2] = Line[RandomReal[1, {10, 3}]];RegionDisjoint[Subscript[ℛ, 1], Subscript[ℛ, 2]]Subscript[ℛ, 1] = Polygon[{{1, 0, 1}, {0, 1, 2}, {1, 1, 1}, {2, 0, 0}}];
Subscript[ℛ, 2] = Triangle[{{0, 0, -1}, {2, -1, 1}, {2, 2, 1}}];RegionDisjoint[Subscript[ℛ, 1], Subscript[ℛ, 2]]Graphics3D[{{Red, Subscript[ℛ, 1]}, {Green, Subscript[ℛ, 2]}}, Boxed -> False]Cuboid 和 Hexahedron:
Subscript[ℛ, 1] = Cuboid[];
Subscript[ℛ, 2] = Hexahedron[{{0, 0, 0}, {1, 0, 0}, {2, 1, 0}, {1, 1, 0}, {0, 0, 1}, {1, 0, 1}, {2, 1, 1}, {1, 1, 1}}];RegionDisjoint[Subscript[ℛ, 1], Subscript[ℛ, 2]]Subscript[ℛ, 1] = Ball[3];
Subscript[ℛ, 2] = Ellipsoid[{1, 1, 2}, {3, 2, 1}];RegionDisjoint[Subscript[ℛ, 1], Subscript[ℛ, 2]]Subscript[ℛ, 1] = Tetrahedron[];
Subscript[ℛ, 2] = Simplex[{{1, 0, 1}, {1, 0, 0}, {0, 0, 1}, {1, 1, 1}}];RegionDisjoint[Subscript[ℛ, 1], Subscript[ℛ, 2]]含有
中的 Cuboid 和 Parallelepiped 的
中的区域:
Subscript[ℛ, 1] = Cuboid[{0, 0, 0, 0}, {1, 1, 1, 1}];
Subscript[ℛ, 2] = Parallelepiped[{-1, -1, -1, -1}, -IdentityMatrix[4]];RegionDisjoint[Subscript[ℛ, 1], Subscript[ℛ, 2]]Subscript[ℛ, 1] = Ellipsoid[Table[1, 10], Table[i, {i, 10}]];
Subscript[ℛ, 2] = Ball[10];RegionDisjoint[Subscript[ℛ, 1], Subscript[ℛ, 2]]公式区域 (4)
Subscript[ℛ, 1] = ImplicitRegion[1 / 2 ≤ x^2 + y^2 ≤ 1, {x, y}];
Subscript[ℛ, 2] = ImplicitRegion[(x - 1)^2 + y^2 == 9, {x, y}];RegionDisjoint[Subscript[ℛ, 1], Subscript[ℛ, 2]]Subscript[ℛ, 1] = ParametricRegion[{2x y, x - y}, {{x, 0, 1}, {y, 0, 1}}];
Subscript[ℛ, 2] = ParametricRegion[{r Cos[θ] + 1, r Sin[θ]}, {{r, 0, 2}, {θ, 0, 2π}}];RegionDisjoint[Subscript[ℛ, 1], Subscript[ℛ, 2]]Subscript[ℛ, 1] = ImplicitRegion[(x - 2)^4 + (y - 2)^4 + (z - 2)^4 ≤ 1, {x, y, z}];
Subscript[ℛ, 2] = ParametricRegion[{ρSqrt[4 - u^2]Cos[θ], ρSqrt[4 - u^2]Sin[θ], ρ u}, {{ρ, 0, 1}, {θ, 0, 2π}, {u, -2, 2}}];RegionDisjoint[Subscript[ℛ, 1], Subscript[ℛ, 2]]RegionDisjoint[Annulus[], ImplicitRegion[Subsuperscript[r, 1, 2] ≤ x^2 + y^2 ≤ Subsuperscript[r, 2, 2], {x, y}]]网格区域 (3)
比较
中的 MeshRegion:
Subscript[ℛ, 1] = MeshRegion[{{0}, {2}}, Line[{1, 2}]];
Subscript[ℛ, 2] = MeshRegion[{{1}, {3}}, Line[{1, 2}]];RegionDisjoint[Subscript[ℛ, 1], Subscript[ℛ, 2]]Subscript[ℛ, 1] = DiscretizeGraphics[Annulus[]];
Subscript[ℛ, 2] = DiscretizeGraphics[Disk[{1 / 3, 0}, 1 / 4]];Show[Subscript[ℛ, 1], Subscript[ℛ, 2]]RegionDisjoint[Subscript[ℛ, 1], Subscript[ℛ, 2]]Subscript[ℛ, 1] = DiscretizeGraphics[Ball[]];
Subscript[ℛ, 2] = DiscretizeGraphics[Cuboid[{1, 1, 1}]];Show[Subscript[ℛ, 2], Subscript[ℛ, 1]]RegionDisjoint[Subscript[ℛ, 1], Subscript[ℛ, 2]]比较
中的 BoundaryMeshRegion:
Subscript[ℛ, 1] = BoundaryMeshRegion[{{0}, {2}}, Point[{1, 2}]];
Subscript[ℛ, 2] = BoundaryMeshRegion[{{1}, {3}}, Point[{1, 2}]];RegionDisjoint[Subscript[ℛ, 1], Subscript[ℛ, 2]]Subscript[ℛ, 1] = BoundaryDiscretizeGraphics[Annulus[]];
Subscript[ℛ, 2] = BoundaryDiscretizeGraphics[Disk[{1 / 3, 0}, 1 / 4]];Show[Subscript[ℛ, 1], Subscript[ℛ, 2]]RegionDisjoint[Subscript[ℛ, 1], Subscript[ℛ, 2]]Subscript[ℛ, 1] = BoundaryDiscretizeGraphics[Ball[]];
Subscript[ℛ, 2] = BoundaryDiscretizeGraphics[Cuboid[{1, 1, 1}]];Show[Subscript[ℛ, 2], Subscript[ℛ, 1]]RegionDisjoint[Subscript[ℛ, 1], Subscript[ℛ, 2]]比较 MeshRegion 与
中的 BoundaryMeshRegion:
Subscript[ℛ, 1] = DelaunayMesh[RandomReal[{-2, 0}, {25, 2}]];
Subscript[ℛ, 2] = ConvexHullMesh[RandomReal[{0, 2}, {25, 2}]];Show[Subscript[ℛ, 1], Subscript[ℛ, 2]]RegionDisjoint[Subscript[ℛ, 1], Subscript[ℛ, 2]]Subscript[ℛ, 1] = DelaunayMesh[RandomReal[{-1, 1}, {25, 3}]];
Subscript[ℛ, 2] = ConvexHullMesh[RandomReal[{0, 1}, {25, 3}]];Show[Subscript[ℛ, 1], Subscript[ℛ, 2]]RegionDisjoint[Subscript[ℛ, 1], Subscript[ℛ, 2]]导出区域 (1)
比较 BooleanRegion:
Subscript[ℛ, 1] = Rectangle[{2, 0}];
Subscript[ℛ, 2] = BooleanRegion[Xnor, {Disk[], Disk[{2, 0}, 2]}];RegionDisjoint[Subscript[ℛ, 1], Subscript[ℛ, 2]]选项 (2)
Assumptions (1)
Subscript[ℛ, 1] = Disk[];
Subscript[ℛ, 2] = ImplicitRegion[Subsuperscript[r, 1, 2] ≤ x^2 + y^2 ≤ Subsuperscript[r, 2, 2], {x, y}];RegionDisjoint[Subscript[ℛ, 1], Subscript[ℛ, 2]]RegionDisjoint[Subscript[ℛ, 1], Subscript[ℛ, 2], Assumptions -> 0 < Subscript[r, 1] < Subscript[r, 2]]GenerateConditions (1)
Subscript[ℛ, 1] = Disk[];
Subscript[ℛ, 2] = ImplicitRegion[Subscript[r, 1] ≤ x^2 + y^2 ≤ Subscript[r, 2], {x, y}];RegionDisjoint[Subscript[ℛ, 1], Subscript[ℛ, 2]]RegionDisjoint[Subscript[ℛ, 1], Subscript[ℛ, 2], GenerateConditions -> True]RegionDisjoint[Subscript[ℛ, 1], Subscript[ℛ, 2], Assumptions -> Subscript[r, 1]∈Reals]应用 (6)
d = 0.2;n = 1000;lines = MeshRegion[
Join@@Table[{{-1 - d, y}, {1 + d, y}}, {y, -1 - d, 1 + d, d}],
Line[Partition[Range[2Floor[2 / d + 3]], 2]]
];needles = Table[Line[{pt, RandomPoint[Circle[pt, d]]}], {pt, RandomReal[{-1, 1}, {n, 2}]}];overlap = Select[needles, !RegionDisjoint[lines, #]&];Show[lines, Graphics[{Red, overlap, StandardGray, Complement[needles, overlap]}]]N[(2n/Length[overlap])]cow = ExampleData[{"Geometry3D", "Cow"}, "MeshRegion"];w1 = Hyperplane[{1, 0, 0}, 0.39];
w2 = Hyperplane[{1, 0, 0}, -0.45];wallColor[reg_] := If[RegionDisjoint[cow, reg], Green, Red]Show[cow, Graphics3D[{{wallColor[w1], w1}, {wallColor[w2], w2}}], PlotRangePadding -> .04]c = Entity["Country", "France"];
p = c["Polygon"] /. GeoPosition -> Identity;all = EntityValue["Country", "Polygon", "EntityAssociation"] /. GeoPosition -> Identity;DeleteCases[Keys[Select[all, !RegionDisjoint[p, #]&]], c]//Sortc["BorderingCountries"]GeoGraphics[{EdgeForm[Black], GeoStyling[LightGray], Polygon[%], GeoStyling[Red], Polygon[c]}]Subscript[ℛ, 1] = Rectangle[{x, y}];
Subscript[ℛ, 2] = Annulus[{0, 0}, {1, 2}];cond = RegionDisjoint[Subscript[ℛ, 1], Subscript[ℛ, 2]]RegionPlot[cond, {x, -4, 3}, {y, -4, 3}, Epilog -> {Red, Opacity[0.1], Subscript[ℛ, 2]}]ℛ = Annulus[{0, 0}, {1 / 2, 1}, {π / 12, 23π / 12}];walkPoint[pt_, r_, reg_] :=
Block[{npt = RandomPoint[Sphere[pt, r]]},
While[!RegionDisjoint[Line[{pt, npt}], reg],
npt = RandomPoint[Sphere[pt, r]]
];
npt
]start = {0, 0};path = NestList[walkPoint[#, 0.1, ℛ]&, start, 500];Graphics[{{Green, ℛ}, {Line[path]}, {Red, Point[start]}}]创建一个网络,如果美国的两个州接壤,就用网络把它们连接起来:
usa = EntityClass["AdministrativeDivision", "ContinentalUSStates"];polys = EntityValue[usa, "Polygon", "EntityAssociation"] /. {GeoPosition -> Identity, {x_Real, y_} :> {y, x}};如果 RegionDisjoint 返回 False,则两个州接壤:
statesBorderQ[loc1_, loc2_] := loc1 =!= loc2 && !RegionDisjoint[polys[loc1], polys[loc2]]g = RelationGraph[statesBorderQ, Keys[polys]]coords = EntityValue[usa, "Coordinates"];g = Graph[g, VertexCoordinates -> Reverse /@ coords, EdgeStyle -> Directive[{Red, Thick}], Prolog -> {EdgeForm[Thin], LightGreen, Values[polys]}, PlotRange -> RegionBounds[RegionUnion@@Values[polys]]]GraphPeriphery[g]path = FindShortestPath[g, Entity["AdministrativeDivision", {"Maine", "UnitedStates"}], Entity["AdministrativeDivision", {"California", "UnitedStates"}]];HighlightGraph[g, Style[PathGraph[path], Blue]]属性和关系 (4)
ℛ = Disk[];RegionDisjoint[ℛ, BooleanRegion[Not, {ℛ}]]Subscript[ℛ, 1] = Disk[];
Subscript[ℛ, 2] = Rectangle[{2, 0}];Resolve[Exists[{x, y}, {x, y}∈Subscript[ℛ, 1]∧{x, y}∈Subscript[ℛ, 2]]]RegionDisjoint[Subscript[ℛ, 1], Subscript[ℛ, 2]]对于非空区域,当 RegionDisjoint 返回 True 时,RegionEqual 和 RegionWithin 返回 False:
Subscript[ℛ, 1] = Disk[];
Subscript[ℛ, 2] = Disk[{2, 1}];RegionDisjoint[Subscript[ℛ, 1], Subscript[ℛ, 2]]RegionEqual[Subscript[ℛ, 1], Subscript[ℛ, 2]]RegionWithin[Subscript[ℛ, 1], Subscript[ℛ, 2]]用 FindInstance 找出位于两个区域相交部分的点:
Subscript[ℛ, 1] = Rectangle[];
Subscript[ℛ, 2] = Parallelogram[];RegionDisjoint[Subscript[ℛ, 1], Subscript[ℛ, 2]]pts = {x, y} /. FindInstance[{x, y}∈Subscript[ℛ, 1]∧{x, y}∈Subscript[ℛ, 2], {x, y}, 100];Graphics[{Point[pts], Opacity[0.5], {Red, Subscript[ℛ, 1]}, {Green, Subscript[ℛ, 2]}}]用 RandomPoint 找出位于两个区域相交部分的均匀采样点:
pts = RandomPoint[BooleanRegion[#1∧#2&, {Subscript[ℛ, 1], Subscript[ℛ, 2]}], 100];Graphics[{Point[pts], Opacity[0.5], {Red, Subscript[ℛ, 1]}, {Green, Subscript[ℛ, 2]}}]用 Reduce 来找出两个区域重叠的部分:
Reduce[{x, y}∈Subscript[ℛ, 1]∧{x, y}∈Subscript[ℛ, 2], {x, y}]RegionPlot[%, {x, -1, 3}, {y, -3 / 2, 5 / 2}, PlotPoints -> 60]巧妙范例 (1)
randomBall[dim_] := Ball[{RandomReal[{0, 10}, dim]}, {RandomReal[{1 / 4, 1}]}]appendDisjointBall[dim_][reg : Ball[pts_, rs_]] :=
Block[{ball = randomBall[dim]},
While[!RegionDisjoint[ball, reg],
ball = randomBall[dim]
];
Ball[Join[pts, #1], Join[rs, #2]]&@@ball
]disjointBalls[n_, dim_] := Nest[appendDisjointBall[dim], randomBall[dim], n - 1]n = 40;
scene2D = disjointBalls[n, 2];Graphics[{EdgeForm[StandardGray], Thread[{RandomColor[Hue[_], n], Thread[scene2D]}]}]n = 100;
scene3D = disjointBalls[n, 3];Graphics3D[Thread[{RandomColor[Hue[_], n], Thread[scene3D]}], Lighting -> "Neutral"]文本
Wolfram Research (2017),RegionDisjoint,Wolfram 语言函数,https://reference.wolfram.com/language/ref/RegionDisjoint.html.
CMS
Wolfram 语言. 2017. "RegionDisjoint." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/RegionDisjoint.html.
APA
Wolfram 语言. (2017). RegionDisjoint. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/RegionDisjoint.html 年
BibTeX
@misc{reference.wolfram_2026_regiondisjoint, author="Wolfram Research", title="{RegionDisjoint}", year="2017", howpublished="\url{https://reference.wolfram.com/language/ref/RegionDisjoint.html}", note=[Accessed: 01-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_regiondisjoint, organization={Wolfram Research}, title={RegionDisjoint}, year={2017}, url={https://reference.wolfram.com/language/ref/RegionDisjoint.html}, note=[Accessed: 01-September-2026]}