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]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)
ビュフォン(Buffon)の針の問題のシミュレーションを行うことで
を推定する:
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を返すときは,2つの州の多角形が接している:
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]]非空の領域について,RegionEqualとRegionWithinは,RegionDisjointがTrueを返すときは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を使って2つの領域の共通部分にある点を求める:
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を使って2つの領域の共通部分にある点の一様サンプリングを求める:
pts = RandomPoint[BooleanRegion[#1∧#2&, {Subscript[ℛ, 1], Subscript[ℛ, 2]}], 100];Graphics[{Point[pts], Opacity[0.5], {Red, Subscript[ℛ, 1]}, {Green, Subscript[ℛ, 2]}}]Reduceを使って2つの領域が重なる箇所を求める:
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 Language. 2017. "RegionDisjoint." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/RegionDisjoint.html.
APA
Wolfram Language. (2017). RegionDisjoint. Wolfram Language & System Documentation Center. Retrieved from 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: 04-November-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: 04-November-2026]}