BooleanRegion[bfunc,{reg1,reg2,…}]
represents the Boolean combination bfunc of regions reg1, reg2, ….
BooleanRegion
BooleanRegion[bfunc,{reg1,reg2,…}]
represents the Boolean combination bfunc of regions reg1, reg2, ….
Details and Options
- A point p belongs to BooleanRegion[bfunc,{reg1,reg2,…}] if bfunc[p∈reg1,p∈reg2,…] is True.
- For BoundaryMeshRegion regi, BooleanRegion represents the smallest BoundaryMeshRegion that contains the Boolean combination of regions regi.
- For MeshRegion regi, BooleanRegion gives the smallest MeshRegion that contains the Boolean combination of regions regi.
- The following functions are equivalent:
-
RegionIntersection[reg1,reg2,…] BooleanRegion[And, {reg1,reg2,…}] RegionUnion[reg1,reg2,…] BooleanRegion[Or, {reg1,reg2,…}] RegionDifference[reg1,reg2] BooleanRegion[And[#1,Not[#2]]&, {reg1,reg2}] RegionSymmetricDifference[reg1,…] BooleanRegion[Xor, {reg1,…}] - BooleanRegion takes the same options as Region.
Examples
open all close allBasic Examples (2)
The Boolean Xor of two disks:
BooleanRegion[Xor, {Disk[{-1 / 3, 0}, 1], Disk[{1 / 3, 0}, 1]}];Region[%]A Boolean function applied to MeshRegion objects:
BooleanRegion[¬#2∧#1&, {[image], [image]}]Scope (11)
Special Regions (5)
ℛ = BooleanRegion[Or, {Line[{{1}, {2}}], Line[{{3}, {4}}], Line[{{5}, {6}}]}];Region[ℛ]A BooleanCountingFunction applied to Polygon regions:
pts = {{-5, 0}, {1, -2}, {-1, 0}, {1, 2}};
{p1, p2, p3, p4} = Polygon /@ {pts, -pts, Reverse /@ pts, -Reverse /@ pts};ℛ = BooleanRegion[BooleanCountingFunction[{1, 2}, 4], {p1, p2, p3, p4}];Compute its Area:
Area[ℛ]A Boolean Xor of two Disk regions:
ℛ = BooleanRegion[Xor, {Disk[{0, 0}, 1], Disk[{1, 0}, 1]}];Region[ℛ]A Boolean Or of two Cuboid regions:
ℛ = BooleanRegion[Or, {Cuboid[], Cuboid[{0.5, 0.5, 0.5}]}];Region[ℛ]A Boolean And of regions with different RegionDimension:
ℛ = BooleanRegion[And, {Disk[{0, 0}, 1], Circle[{0, 1}, 1]}];Region[ℛ]Formula Regions (2)
A Boolean Xor of ImplicitRegion objects is an ImplicitRegion:
Subscript[ℛ, 1] = ImplicitRegion[x ≤ 1, {x}];
Subscript[ℛ, 2] = ImplicitRegion[x ≥ -1, {x}];BooleanRegion[Xor, {Subscript[ℛ, 1], Subscript[ℛ, 2]}]Subscript[ℛ, 1] = ImplicitRegion[x^2 + y^2 ≤ 1, {x, y}];
Subscript[ℛ, 2] = ImplicitRegion[x^2 + (y - 1)^2 ≤ 1, {x, y}];BooleanRegion[Xor, {Subscript[ℛ, 1], Subscript[ℛ, 2]}]Subscript[ℛ, 1] = ImplicitRegion[x^2 + y^2 + z^2 ≤ 1, {x, y, z}];
Subscript[ℛ, 2] = ImplicitRegion[(x - 1)^2 + y^2 + z^2 ≤ 1, {x, y, z}];BooleanRegion[Xor, {Subscript[ℛ, 1], Subscript[ℛ, 2]}]Subscript[ℛ, 1] = ImplicitRegion[x^2 + y^2 + z^2 + u^2 + v^2 ≤ 1, {x, y, z, u, v}];
Subscript[ℛ, 2] = ImplicitRegion[(x - 1)^2 + y^2 + z^2 + u^2 + v^2 ≤ 1, {x, y, z, u, v}];BooleanRegion[Xor, {Subscript[ℛ, 1], Subscript[ℛ, 2]}]A Boolean function applied to ParametricRegion objects:
Subscript[ℛ, 1] = ParametricRegion[{u, v, w}, {{u, 0, 2}, {v, 0, 2}, {w, 0, 2}}];
Subscript[ℛ, 2] = ParametricRegion[{u - 1, v + 1, w - 1}, {{u, 0, 2}, {v, 0, 2}, {w, 0, 2}}];ℛ = BooleanRegion[¬#1∧#2&, {Subscript[ℛ, 1], Subscript[ℛ, 2]}];Region[ℛ]Mesh Regions (2)
A Boolean function of BoundaryMeshRegion objects is a BoundaryMeshRegion:
BooleanRegion[¬#2∧#1&, {[image], [image]}]BoundedRegionQ[%]BooleanRegion[¬#2∧#1&, {[image], [image]}]BoundedRegionQ[%]BooleanRegion[¬#2∧#1&, {[image], [image]}]BoundedRegionQ[%]A Boolean function of full dimensional MeshRegion objects is a MeshRegion:
BooleanRegion[¬#2∧#1&, {[image], [image]}]MeshRegionQ[%]BooleanRegion[¬#2∧#1&, {[image], [image]}]MeshRegionQ[%]BooleanRegion[¬#2∧#1&, {[image], [image]}]MeshRegionQ[%]Derived Regions (2)
A Boolean function of BooleanRegion objects:
Subscript[ℛ, 1] = BooleanRegion[Or, {Triangle[{{0, 0}, {2, 3}, {-2, 3}}], Triangle[{{0, 2}, {2, -1}, {-2, -1}}]}];
Subscript[ℛ, 2] = BooleanRegion[And, {Triangle[{{0, 0}, {2, 3}, {-2, 3}}], Triangle[{{0, 2}, {2, -1}, {-2, 2}}]}];ℛ = BooleanRegion[¬#2∧#1&, {Subscript[ℛ, 1], Subscript[ℛ, 2]}];Region[ℛ]A Boolean Or of TransformedRegion objects:
Subscript[ℛ, 1] = TransformedRegion[Cuboid[], RotationTransform[Pi / 8, {1, 0, 0}]];
Subscript[ℛ, 2] = TransformedRegion[Cuboid[], RotationTransform[Pi / 8, {0, 1, 0}]];ℛ = BooleanRegion[Or, {Subscript[ℛ, 1], Subscript[ℛ, 2]}];Region[ℛ]Applications (1)
Properties & Relations (2)
RegionUnion is a Boolean combination Or of regions:
{Subscript[ℛ, 1], Subscript[ℛ, 2]} = {[image], [image]};RegionUnion[Subscript[ℛ, 1], Subscript[ℛ, 2]] == BooleanRegion[Or, {Subscript[ℛ, 1], Subscript[ℛ, 2]}]RegionIntersection[Subscript[ℛ, 1], Subscript[ℛ, 2]] == BooleanRegion[And, {Subscript[ℛ, 1], Subscript[ℛ, 2]}]RegionDifference[Subscript[ℛ, 1], Subscript[ℛ, 2]] == BooleanRegion[¬#2∧#1&, {Subscript[ℛ, 1], Subscript[ℛ, 2]}]RegionSymmetricDifference[Subscript[ℛ, 1], Subscript[ℛ, 2]] == BooleanRegion[Xor, {Subscript[ℛ, 1], Subscript[ℛ, 2]}]The RegionMeasure of a Boolean And obeys a simple formula:
Subscript[ℛ, 1] = Disk[{0, 0}, 1];
Subscript[ℛ, 2] = Disk[{1, 0}, 1];
Subscript[ℛ, 3] = BooleanRegion[And, {Subscript[ℛ, 1], Subscript[ℛ, 2]}];Subtract the measure of the RegionUnion from the sum of the measures:
RegionMeasure[Subscript[ℛ, 3]] == RegionMeasure[Subscript[ℛ, 1]] + RegionMeasure[Subscript[ℛ, 2]] - RegionMeasure[RegionUnion[Subscript[ℛ, 1], Subscript[ℛ, 2]]]Possible Issues (3)
BooleanRegion is defined only for regions with the same RegionEmbeddingDimension:
Subscript[ℛ, 1] = Disk[];
Subscript[ℛ, 2] = Ball[{0, 0, 1}, 1];BooleanRegion[Or, {Subscript[ℛ, 1], Subscript[ℛ, 2]}]Components of dimension less than the embedding dimension may be omitted:
Subscript[ℛ, 1] = MeshRegion[{{0, 0, 0}, {2, 0, 0}, {2, 2, 0}, {1, 1, 2}}, Tetrahedron[{1, 2, 3, 4}]];
Subscript[ℛ, 2] = MeshRegion[{{0, 0, 0}, {2, 2, 0}, {0, 2, 0}, {1, 1, 2}}, Tetrahedron[{1, 2, 3, 4}], PlotTheme -> "Web"];Show[{Subscript[ℛ, 1], Subscript[ℛ, 2]}]BooleanRegion[And, {Subscript[ℛ, 1], Subscript[ℛ, 2]}]On[BooleanRegion::drc]BooleanRegion[And, {Subscript[ℛ, 1], Subscript[ℛ, 2]}]BooleanRegion may include overlapping lower-dimensional components:
Subscript[ℛ, 1] = Sphere[];
Subscript[ℛ, 2] = Ball[{1 / 2, 0, 0}];Graphics3D[{Yellow, Subscript[ℛ, 1], Green, Opacity@.5, Subscript[ℛ, 2]}]Subscript[ℛ, 3] = BooleanRegion[Or, {DiscretizeGraphics[Subscript[ℛ, 1]], BoundaryDiscretizeGraphics[Subscript[ℛ, 2]]}]The connected mesh components:
ConnectedMeshComponents[Subscript[ℛ, 3]]Neat Examples (1)
The Boolean Xor of two spiral polygons:
BooleanRegion[Xor, {[image], [image]}]Related Guides
Text
Wolfram Research (2014), BooleanRegion, Wolfram Language function, https://reference.wolfram.com/language/ref/BooleanRegion.html (updated 2017).
CMS
Wolfram Language. 2014. "BooleanRegion." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2017. https://reference.wolfram.com/language/ref/BooleanRegion.html.
APA
Wolfram Language. (2014). BooleanRegion. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/BooleanRegion.html
BibTeX
@misc{reference.wolfram_2026_booleanregion, author="Wolfram Research", title="{BooleanRegion}", year="2017", howpublished="\url{https://reference.wolfram.com/language/ref/BooleanRegion.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_booleanregion, organization={Wolfram Research}, title={BooleanRegion}, year={2017}, url={https://reference.wolfram.com/language/ref/BooleanRegion.html}, note=[Accessed: 13-June-2026]}