RegionEqual[reg1,reg2]
returns True if the regions reg1 and reg2 are equal.
RegionEqual[reg1,reg2,reg3,…]
returns True if the regions reg1, reg2, reg3, … are all equal.
RegionEqual
RegionEqual[reg1,reg2]
returns True if the regions reg1 and reg2 are equal.
RegionEqual[reg1,reg2,reg3,…]
returns True if the regions reg1, reg2, reg3, … are all equal.
Details and Options
- The regions reg1 and reg2 are equal if all points in reg1 are points in reg2 and vice versa.
- If all regi are parameter-free regions, i.e. ConstantRegionQ[regi] is True, the regions are point sets, and typically True or False is returned.
- If some regi depend on parameters, i.e. ConstantRegionQ[regi] is False, then regi represents a family of regions, and RegionEqual will attempt to compute conditions on parameters such that the regions are equal.
- The following options can be given:
-
Assumptions $Assumptions assumptions to make about parameters GenerateConditions False whether to generate conditions on parameters
Examples
open all close allBasic Examples (2)
Test whether two regions are equal:
Subscript[ℛ, 1] = Rectangle[];
Subscript[ℛ, 2] = Polygon[{{0, 0}, {1, 0}, {1, 1}, {0, 1}}];RegionEqual[Subscript[ℛ, 1], Subscript[ℛ, 2]]Generate conditions for which two regions are equal:
Subscript[ℛ, 1] = Circle[];
Subscript[ℛ, 2] = ImplicitRegion[x^2 + y^2 == r, {x, y}];RegionEqual[Subscript[ℛ, 1], Subscript[ℛ, 2]]Scope (16)
Basic Uses (4)
Subscript[ℛ, 1] = Rectangle[{0, 0}, {2, 1}];
Subscript[ℛ, 2] = ImplicitRegion[0 ≤ x ≤ 2 && 0 ≤ y ≤ 1, {x, y}];RegionEqual[Subscript[ℛ, 1], Subscript[ℛ, 2]]Show two regions are not equal:
Subscript[ℛ, 1] = Line[{{0, 0}, {1, 1}}];
Subscript[ℛ, 2] = Line[{{0, 0}, {-1, 1}}];RegionEqual[Subscript[ℛ, 1], Subscript[ℛ, 2]]Find conditions that make regions equal:
Subscript[ℛ, 1] = Disk[];
Subscript[ℛ, 2] = Disk[{x, y}, r, {0, θ}];RegionEqual[Subscript[ℛ, 1], Subscript[ℛ, 2]]Compare three regions at once:
Subscript[ℛ, 1] = Interval[{0, 1}];
Subscript[ℛ, 2] = MeshRegion[{{0}, {1}}, Line[{1, 2}]];
Subscript[ℛ, 3] = ImplicitRegion[0 ≤ x ≤ 1, x];RegionEqual[Subscript[ℛ, 1], Subscript[ℛ, 2], Subscript[ℛ, 3]]Basic Regions (4)
Regions in
including Line and Interval:
RegionEqual[Line[{{0}, {1}}], Interval[{0, 1}]]RegionEqual[Point[{2}], Interval[{2, 2}]]Ball:
RegionEqual[Ball[1], Interval[{-1, 1}]]RegionEqual[InfiniteLine[{0}, {1}], FullRegion[1]]Regions in
including Point:
Subscript[ℛ, 1] = Point[Tuples[Range[3], 2]];
Subscript[ℛ, 2] = Point[Join@@Table[{i, j}, {j, 3}, {i, 3}]];RegionEqual[Subscript[ℛ, 1], Subscript[ℛ, 2]]Line:
Subscript[ℛ, 1] = Line[{{0, 0}, {3, 3}, {5, -1}, {7, -1}}];
Subscript[ℛ, 2] = Line[{{7, -1}, {6, -1}, {5, -1}, {3, 3}, {1, 1}, {0, 0}}];RegionEqual[Subscript[ℛ, 1], Subscript[ℛ, 2]]Subscript[ℛ, 1] = Polygon[{{0, 0}, {1, 0}, {1, 1}, {0, 1}}];
Subscript[ℛ, 2] = Rectangle[];RegionEqual[Subscript[ℛ, 1], Subscript[ℛ, 2]]Subscript[ℛ, 1] = Polygon[CirclePoints[5]];
Subscript[ℛ, 2] = RegularPolygon[5];RegionEqual[Subscript[ℛ, 1], Subscript[ℛ, 2]]Subscript[ℛ, 1] = Disk[];
Subscript[ℛ, 2] = Ball[2];
Subscript[ℛ, 3] = Ellipsoid[{0, 0}, {1, 1}];RegionEqual[Subscript[ℛ, 1], Subscript[ℛ, 2], Subscript[ℛ, 3]]Rectangle and RegularPolygon:
RegionEqual[Rectangle[{x1, y1}, {x2, y2}], RegularPolygon[r, n]]Regions in
including Point:
Subscript[ℛ, 1] = Point[Tuples[Range[5], 3]];
Subscript[ℛ, 2] = Point[Flatten[Table[{i, j, k}, {j, 5}, {k, 5}, {i, 5}], 2]];RegionEqual[Subscript[ℛ, 1], Subscript[ℛ, 2]]Line:
Subscript[ℛ, 1] = Line[{{0, 0, 0}, {3, 3, 3}, {5, -1, 0}, {7, -1, 1}}];
Subscript[ℛ, 2] = Line[{{7, -1, 1}, {5, -1, 0}, {3, 3, 3}, {1, 1, 1}, {0, 0, 0}}];RegionEqual[Subscript[ℛ, 1], Subscript[ℛ, 2]]Subscript[ℛ, 1] = Polygon[{{1, 0, 0}, {0, 0, 1}, {0, 1, 1}, {1, 1, 0}}];
Subscript[ℛ, 2] = Triangle[{{{1, 0, 0}, {0, 0, 1}, {0, 1, 1}}, {{1, 0, 0}, {0, 1, 1}, {1, 1, 0}}}];RegionEqual[Subscript[ℛ, 1], Subscript[ℛ, 2]]Cuboid and 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}}];RegionEqual[Subscript[ℛ, 1], Subscript[ℛ, 2]]Subscript[ℛ, 1] = Ball[3];
Subscript[ℛ, 2] = Ellipsoid[{0, 0, 0}, {3, 2, 1}];RegionEqual[Subscript[ℛ, 1], Subscript[ℛ, 2]]Tetrahedron and Simplex:
Subscript[ℛ, 1] = Tetrahedron[{{1, 0, 0}, {1, 0, 1}, {1, 1, 1}, {0, 0, 1}}];
Subscript[ℛ, 2] = Simplex[{{1, 0, 1}, {1, 0, 0}, {0, 0, 1}, {1, 1, 1}}];RegionEqual[Subscript[ℛ, 1], Subscript[ℛ, 2]]Regions in
including Cuboid and Parallelepiped in
:
Subscript[ℛ, 1] = Cuboid[{0, 0, 0, 0}, {1, 1, 1, 1}];
Subscript[ℛ, 2] = Parallelepiped[{0, 0, 0, 0}, IdentityMatrix[4]];RegionEqual[Subscript[ℛ, 1], Subscript[ℛ, 2]]Subscript[ℛ, 1] = Ellipsoid[Table[0, 10], Table[1, 10]];
Subscript[ℛ, 2] = Ball[10];RegionEqual[Subscript[ℛ, 1], Subscript[ℛ, 2]]Formula Regions (4)
Subscript[ℛ, 1] = ImplicitRegion[x^2 + y^2 == 1, {x, y}];
Subscript[ℛ, 2] = ImplicitRegion[y == Sqrt[1 - x^2] || y == -Sqrt[1 - x^2], {x, y}];RegionEqual[Subscript[ℛ, 1], Subscript[ℛ, 2]]Subscript[ℛ, 1] = ParametricRegion[{Cos[t], Sin[t]}, t];
Subscript[ℛ, 2] = ParametricRegion[{Cos[2t + π / 5], Sin[2t + π / 5]}, t];RegionEqual[Subscript[ℛ, 1], Subscript[ℛ, 2]]Subscript[ℛ, 1] = ImplicitRegion[-1 ≤ x ≤ 1 && y^2 ≤ x^4 - 2x^2 + 1, {x, y}];
Subscript[ℛ, 2] = ParametricRegion[{t, s (1 - t^2)}, {{s, -1, 1}, {t, -1, 1}}];RegionEqual[Subscript[ℛ, 1], Subscript[ℛ, 2]]RegionEqual[Annulus[], ImplicitRegion[r1 ≤ x^2 + y^2 ≤ r2, {x, y}]]Mesh Regions (3)
Compare MeshRegion in
:
Subscript[ℛ, 1] = MeshRegion[{{0}, {1}}, Line[{1, 2}]];
Subscript[ℛ, 2] = MeshRegion[{{0}, {1 / 2}, {1}}, Line[{3, 2, 1}]];RegionEqual[Subscript[ℛ, 1], Subscript[ℛ, 2]]Subscript[ℛ, 1] = MeshRegion[{{0, 0}, {1, 0}, {1, 1}, {0, 1}}, Polygon[{1, 2, 3, 4}]];
Subscript[ℛ, 2] = TriangulateMesh[Subscript[ℛ, 1]];{Subscript[ℛ, 1], Subscript[ℛ, 2]}RegionEqual[Subscript[ℛ, 1], Subscript[ℛ, 2]]Subscript[ℛ, 1] = DiscretizeGraphics[Cuboid[{0, 0, 0}, {1, 1, 1}]];
Subscript[ℛ, 2] = DiscretizeGraphics[Ball[]];RegionEqual[Subscript[ℛ, 1], Subscript[ℛ, 2]]Compare BoundaryMeshRegion in
:
Subscript[ℛ, 1] = BoundaryMeshRegion[{{0}, {1}}, Point[{1, 2}]];
Subscript[ℛ, 2] = BoundaryMeshRegion[{{0}, {1}}, Point[{2, 1}]];RegionEqual[Subscript[ℛ, 1], Subscript[ℛ, 2]]Subscript[ℛ, 1] = BoundaryMeshRegion[{{0, 0}, {2, 0}, {2, 2}, {0, 2}}, Line[{1, 2, 3, 4, 1}]];
Subscript[ℛ, 2] = BoundaryMeshRegion[{{0, 0}, {1, 0}, {2, 0}, {2, 2}, {0, 2}}, Line[{1, 2, 3, 4, 5, 1}]];{Subscript[ℛ, 1], Subscript[ℛ, 2]}RegionEqual[Subscript[ℛ, 1], Subscript[ℛ, 2]]Subscript[ℛ, 1] = BoundaryDiscretizeGraphics[Cuboid[{0, 0, 0}, {1, 1, 1}]];
Subscript[ℛ, 2] = BoundaryDiscretizeGraphics[Ball[]];RegionEqual[Subscript[ℛ, 1], Subscript[ℛ, 2]]Compare MeshRegion with BoundaryMeshRegion in
:
Subscript[ℛ, 1] = DelaunayMesh[RandomReal[{-1, 1}, {25, 2}]];
Subscript[ℛ, 2] = BoundaryMesh[Subscript[ℛ, 1]];{Subscript[ℛ, 1], Subscript[ℛ, 2]}RegionEqual[Subscript[ℛ, 1], Subscript[ℛ, 2]]Subscript[ℛ, 1] = DelaunayMesh[RandomReal[{-1, 1}, {25, 3}]];
Subscript[ℛ, 2] = BoundaryMesh[Subscript[ℛ, 1]];RegionEqual[Subscript[ℛ, 1], Subscript[ℛ, 2]]Derived Regions (1)
Compare BooleanRegion:
Subscript[ℛ, 1] = BooleanRegion[Xnor, {Disk[], Disk[{1, 0}]}];
Subscript[ℛ, 2] = BooleanRegion[(!#1 || #2) && (#1 || !#2)&, {Disk[], Disk[{1, 0}]}];RegionEqual[Subscript[ℛ, 1], Subscript[ℛ, 2]]Options (2)
Assumptions (1)
Find all radii that describe the unit circle:
Subscript[ℛ, 1] = Circle[];
Subscript[ℛ, 2] = ImplicitRegion[x^2 + y^2 == r^2, {x, y}];RegionEqual[Subscript[ℛ, 1], Subscript[ℛ, 2]]RegionEqual[Subscript[ℛ, 1], Subscript[ℛ, 2], Assumptions -> r > 0]GenerateConditions (1)
Find when the unit disk is equal to an implicitly described annulus:
Subscript[ℛ, 1] = Disk[];
Subscript[ℛ, 2] = ImplicitRegion[Subscript[r, 1] ≤ x^2 + y^2 ≤ Subscript[r, 2], {x, y}];RegionEqual[Subscript[ℛ, 1], Subscript[ℛ, 2]]Show the conditions for which the result is valid:
RegionEqual[Subscript[ℛ, 1], Subscript[ℛ, 2], GenerateConditions -> True]Explicitly allow for degenerate cases:
RegionEqual[Subscript[ℛ, 1], Subscript[ℛ, 2], Assumptions -> Subscript[r, 1]∈Reals]Applications (6)
Find when two lamina are equal:
Subscript[ℛ, 1] = Entity["Lamina", "FilledDiamond"][EntityProperty["Lamina", "Region"]][a, b]Subscript[ℛ, 2] = Entity["Lamina", "FilledKite"][EntityProperty["Lamina", "Region"]][2, 2, 1]RegionEqual[Subscript[ℛ, 1], Subscript[ℛ, 2]]Create the unit disk by covering the hole of an annulus with a disk. Find all possible radii:
RegionEqual[RegionUnion[Annulus[], Disk[{0, 0}, r]], Disk[]]Subscript[r, 0] = RandomReal[{1 / 2, 1}]Graphics[{Opacity[0.4], {Red, Annulus[]}, {Green, Disk[{0, 0}, Subscript[r, 0]]}}]Create the unit disk by covering the hole of an annulus with a square. Find all possible side lengths:
RegionEqual[RegionUnion[Annulus[], Rectangle[{-r, -r}, {r, r}]], Disk[]]Subscript[r, 0] = RandomReal[{1 / 2, 1 / Sqrt[2]}]Graphics[{Opacity[0.4], {Red, Annulus[]}, {Green, Rectangle[{-Subscript[r, 0], -Subscript[r, 0]}, {Subscript[r, 0], Subscript[r, 0]}]}}]Find all ways to express the unit rectangle in terms of Parallelogram:
Subscript[ℛ, 1] = Rectangle[];
Subscript[ℛ, 2] = Parallelogram[{x, y}, {{a1, a2}, {b1, b2}}];RegionEqual[Subscript[ℛ, 1], Subscript[ℛ, 2]]Subscript[ℛ, 2] /. Solve[%]RegionEqual@@Prepend[%, Subscript[ℛ, 1]]Express an implicitly defined ellipse through Ellipsoid:
ℛ = ImplicitRegion[x ^ 2 - x y + 3y ^ 2 ≤ 1, {x, y}];RegionEqual[ℛ, Ellipsoid[{0, 0}, {{a, b}, {c, d}}]]Find a value for each parameter:
Ellipsoid[{0, 0}, {{a, b}, {c, d}}] /. FindInstance[%, {a, b, c, d}]Visualize both representations:
{RegionPlot[ℛ], Graphics[%, Frame -> True, AspectRatio -> 1]}Demonstrate De Morgan's law,
:
Subscript[ℛ, 1] = Disk[{0, 0}, 1];
Subscript[ℛ, 2] = Disk[{1, 0}, 1];complement[reg_] := BooleanRegion[Not, {reg}]dr1 = RegionIntersection[Subscript[ℛ, 1], Subscript[ℛ, 2]];
dr2 = complement[RegionUnion[complement[Subscript[ℛ, 1]], complement[Subscript[ℛ, 2]]]];RegionEqual[dr1, dr2]BoundaryDiscretizeRegion /@ {dr1, dr2}Properties & Relations (4)
Equivalent regions have all points in common:
Subscript[ℛ, 1] = Disk[];
Subscript[ℛ, 2] = ImplicitRegion[x^2 + y^2 ≤ 1, {x, y}];Resolve[ForAll[{x, y}, {x, y}∈Subscript[ℛ, 1]⧦{x, y}∈Subscript[ℛ, 2]], Reals]RegionEqual[Subscript[ℛ, 1], Subscript[ℛ, 2]]RegionEqual can be expressed with RegionWithin:
Subscript[ℛ, 1] = Rectangle[];
Subscript[ℛ, 2] = Parallelogram[{0, 0}, {{1, 0}, {0, 1}}];RegionEqual[Subscript[ℛ, 1], Subscript[ℛ, 2]]RegionWithin[Subscript[ℛ, 1], Subscript[ℛ, 2]] && RegionWithin[Subscript[ℛ, 2], Subscript[ℛ, 1]]For non‐empty regions, RegionDisjoint returns False when RegionEqual returns True:
Subscript[ℛ, 1] = Rectangle[];
Subscript[ℛ, 2] = Parallelogram[{0, 0}, {{1, 0}, {0, 1}}];RegionEqual[Subscript[ℛ, 1], Subscript[ℛ, 2]]RegionDisjoint[Subscript[ℛ, 1], Subscript[ℛ, 2]]Use FindInstance to find points that lie in one region but not the other:
Subscript[ℛ, 1] = Rectangle[];
Subscript[ℛ, 2] = Parallelogram[];RegionEqual[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]}}]Use RandomPoint to find a uniform sampling of points that lie in one region but not the other:
pts = RandomPoint[BooleanRegion[Xor, {Subscript[ℛ, 1], Subscript[ℛ, 2]}], 100];Graphics[{Point[pts], Opacity[0.5], {Red, Subscript[ℛ, 1]}, {Green, Subscript[ℛ, 2]}}]Use Reduce to find where two regions differ:
Reduce[{x, y}∈Subscript[ℛ, 1]⊻{x, y}∈Subscript[ℛ, 2], {x, y}]RegionPlot[%, {x, -1, 3}, {y, -3 / 2, 5 / 2}, PlotPoints -> 60]Related Guides
History
Text
Wolfram Research (2017), RegionEqual, Wolfram Language function, https://reference.wolfram.com/language/ref/RegionEqual.html.
CMS
Wolfram Language. 2017. "RegionEqual." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/RegionEqual.html.
APA
Wolfram Language. (2017). RegionEqual. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/RegionEqual.html
BibTeX
@misc{reference.wolfram_2026_regionequal, author="Wolfram Research", title="{RegionEqual}", year="2017", howpublished="\url{https://reference.wolfram.com/language/ref/RegionEqual.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_regionequal, organization={Wolfram Research}, title={RegionEqual}, year={2017}, url={https://reference.wolfram.com/language/ref/RegionEqual.html}, note=[Accessed: 13-June-2026]}