InfinitePlane[{p1,p2,p3}]
represents the plane passing through the points p1, p2, and p3.
InfinitePlane[p,{v1,v2}]
represents the plane passing through the point p in the directions v1 and v2.
InfinitePlane
InfinitePlane[{p1,p2,p3}]
represents the plane passing through the points p1, p2, and p3.
InfinitePlane[p,{v1,v2}]
represents the plane passing through the point p in the directions v1 and v2.
Details
- InfinitePlane is also known as plane or hyperplane.
- InfinitePlane can be used as a geometric region and graphics primitive.
- InfinitePlane represents a plane
or
. - Hyperplane[n,p] is an alternative representation using a normal n in 3D.
- InfinitePlane can be used in Graphics and Graphics3D.
- InfinitePlane will be clipped by PlotRange when rendering.
- In graphics, the points p, pi and vector v can be Dynamic expressions.
- Graphics rendering is affected by directives such as FaceForm, Opacity, and color.
- FaceForm[front,back] can be used to specify different styles for the front and back in 3D. The front is defined by the right-hand rule and the direction of the points pi or the vectors vi.
- InfinitePlane can be used with functions such as RegionMeasure, RegionCentroid, etc.
Examples
open all close allBasic Examples (3)
An InfinitePlane in 3D:
Graphics3D[InfinitePlane[{{1, 0, 0}, {1, 1, 1}, {0, 0, 1}}]]Different styles applied to an infinite plane:
ℛ = InfinitePlane[{{1, 0, 0}, {1, 1, 1}, {0, 0, 1}}];{Graphics3D[{Pink, ℛ}], Graphics3D[{EdgeForm[Thick], Pink, ℛ}], Graphics3D[{EdgeForm[Dashed], Pink, ℛ}], Graphics3D[{EdgeForm[Directive[Thick, Dashed, Blue]], Pink, ℛ}]}Determine if points belong to a given infinite plane:
ℛ = InfinitePlane[{{1, 0, 0}, {1, 0, 1}, {1, 1, 0}}];{RegionMember[ℛ, {1, 2, 3}], RegionMember[ℛ, {0, 2, 3}]}Scope (17)
Graphics (7)
Specification (2)
Define an infinite plane in 3D using three points:
ill = Graphics3D[{PointSize[Medium], Point[{{1, 0, 0}, {1, 1, 1}, {0, 0, 1}}]}, PlotRange -> 2, Axes -> True];Show[ill, Graphics3D[InfinitePlane[{{1, 0, 0}, {1, 1, 1}, {0, 0, 1}}]]]Define the same plane using a single point and two tangent vectors:
ill = Graphics3D[{PointSize[Medium], Point[{{1, 0, 0}}], Arrowheads[Medium], Thick, Arrow[{{1, 0, 0}, {1, 1, 1}}], Arrow[{{1, 0, 0}, {0, 0, 1}}]}, PlotRange -> 2, Axes -> True];Show[ill, Graphics3D[InfinitePlane[{1, 0, 0}, {{0, 1, 1}, {-1, 0, 1}}]]]An infinite plane varying in direction:
Table[Graphics3D[InfinitePlane[{0, 0, 0}, {{1, 0, 0}, {1, Cos[θ], Sin[θ]}}], ImageSize -> Tiny, PlotLabel -> θ], {θ, 0, π, π / 4}]Styling (2)
Color directives specify the color of the infinite plane:
Table[Graphics3D[{c, InfinitePlane[{1, 0, 0}, {{0, 1, 1}, {-1, 0, 1}}]}], {c, {Red, Green, Yellow, Blue}}]FaceForm and EdgeForm can be used to specify the styles of the faces and edges:
Graphics3D[{FaceForm[Pink], EdgeForm[Directive[Dashed, Thick, Blue]], InfinitePlane[{1, 0, 0}, {{0, 1, 1}, {-1, 0, 1}}]}]Coordinates (3)
Specify coordinates by fractions of the plot range:
Graphics3D[InfinitePlane[{Scaled[{0.5, 0, 0}], Scaled[{0, 0.5, 0}], Scaled[{0.5, 0.5, 0.5}]}], PlotRange -> {{0, 10}, {0, 10}, {0, 10}}, Axes -> True]Specify scaled offsets from the ordinary coordinates:
Graphics3D[InfinitePlane[{Scaled[{0, 0, 0.5}, {1, 0, 0}], Scaled[{0, 0, 0.5}, {0, 1, 0}], Scaled[{0, 0, 0.5}, {1, 1, 1}]}], PlotRange -> {{0, 2}, {0, 2}, {0, 2}}, Axes -> True]Points and vectors can be Dynamic:
DynamicModule[{θ = 0}, {Slider[Dynamic[θ], {0, Pi}], Graphics3D[InfinitePlane[{0, 0, 0}, {{1, 0, 0}, Dynamic[{1, Cos[θ], Sin[θ]}]}]]}]Regions (10)
Embedding dimension is the dimension of the coordinates:
RegionEmbeddingDimension[InfinitePlane[{{Subscript[x, 0], Subscript[y, 0]}, {Subscript[x, 1], Subscript[y, 1]}, {Subscript[x, 2], Subscript[y, 2]}}]]RegionEmbeddingDimension[InfinitePlane[{Subscript[x, 0], Subscript[y, 0], Subscript[z, 0]}, {{Subscript[vx, 1], Subscript[vy, 1], Subscript[vz, 1]}, {Subscript[vx, 2], Subscript[vy, 2], Subscript[vz, 2]}}]]Geometric dimension is the dimension of the region itself:
RegionEmbeddingDimension[InfinitePlane[{{Subscript[x, 0], Subscript[y, 0]}, {Subscript[x, 1], Subscript[y, 1]}, {Subscript[x, 2], Subscript[y, 2]}}]]RegionDimension[InfinitePlane[{Subscript[x, 0], Subscript[y, 0], Subscript[z, 0]}, {{Subscript[vx, 1], Subscript[vy, 1], Subscript[vz, 1]}, {Subscript[vx, 2], Subscript[vy, 2], Subscript[vz, 2]}}]]ℛ = InfinitePlane[{{0, 0, 0}, {1, 0, 0}, {0, 1, 0}}];{RegionMember[ℛ, {2, 2, 0}], RegionMember[ℛ, {0, 0, 1}]}Get the conditions for membership:
RegionMember[ℛ, {x, y, z}]An infinite plane has infinite measure and undefined centroid:
ℛ = InfinitePlane[{{0, 0, 0}, {1, 0, 0}, {0, 1, 0}}];RegionMeasure[ℛ]RegionCentroid[ℛ]ℛ = InfinitePlane[{{0, 0, 0}, {1, 0, 0}, {0, 1, 0}}];RegionDistance[ℛ, {0, 0, -3}]SignedRegionDistance[ℛ, {0, 0, -3}]ℛ = InfinitePlane[{{0, 0, 0}, {1, 0, 0}, {0, 3, 1}}];RegionNearest[ℛ, {1, 2, 3}]pts = Flatten[Table[{Cos[k 2 π / 8]Cos[j π / 8], Sin[k 2 π / 8]Cos[j π / 8], Sin[j π / 8]}, {k, 0, 7}, {j, -3, 3}], 1];
nst = RegionNearest[ℛ, #]& /@ pts;Legended[Graphics3D[{{Opacity[0.5], ℛ}, {Thin, Gray, Line[Transpose[{pts, nst}]]}, {Red, Point[pts]}, {Blue, Point[nst]}}, Boxed -> False], PointLegend[{Red, Blue}, {"start", "nearest"}]]An infinite plane is unbounded:
ℛ = InfinitePlane[{{Subscript[x, 0], Subscript[y, 0], Subscript[z, 0]}, {Subscript[x, 1], Subscript[y, 1], Subscript[z, 1]}, {Subscript[x, 2], Subscript[y, 2], Subscript[z, 2]}}];BoundedRegionQ[ℛ]RegionBounds[ℛ]Integrate over an infinite plane:
ℛ = InfinitePlane[{{0, 0, 0}, {1, 0, 0}, {0, 1, 1}}];Integrate[Exp[-x^2 - y^2], {x, y, z}∈ℛ]Optimize over an infinite plane:
ℛ = InfinitePlane[{0, 0, 2}, {{1, 0, 0}, {0, 1, 0}}];Minimize[{x^2 + y^2 + z^2 + 1, {x, y, z}∈ℛ}, {x, y, z}]Solve equations over an infinite plane:
ℛ = InfinitePlane[{0, 0, 0}, {{1, 2, 0}, {0, 0, 3}}];Reduce[x^2 + y^2 + z^2 == 1 && {x, y, z}∈ℛ, {x, y, z}]Applications (7)
Find the plane in which a triangle is embedded:
{Subscript[p, 1], Subscript[p, 2], Subscript[p, 3]} = {{1, 0, 0}, {1, 1, 1}, {0, 0, 1}};InfinitePlane can use the same parametrization as Triangle:
Subscript[ℛ, 1] = Triangle[{Subscript[p, 1], Subscript[p, 2], Subscript[p, 3]}];
Subscript[ℛ, 2] = InfinitePlane[{Subscript[p, 1], Subscript[p, 2], Subscript[p, 3]}];Graphics3D[{Red, Subscript[ℛ, 1], Opacity[0.5, Yellow], Subscript[ℛ, 2]}, PlotRange -> {{-2, 2}, {-2, 2}, {-2, 2}}]Find the plane in which a polygon is embedded:
p0 = {1, 1, 1};
e1 = Normalize[{2, 1, 1}];e2 = Normalize[{-1, 1, 2}];pl = With[{p = 5}, Table[p0 + Cos[2Pi k / p]e1 + Sin[2Pi k / p]e2, {k, p}]];To find the plane, take the first three points (or any three points not on a line):
Subscript[ℛ, 1] = Polygon[pl];
Subscript[ℛ, 2] = InfinitePlane[pl[[1 ;; 3]]];Graphics3D[{Red, Subscript[ℛ, 1], Opacity[0.5, Yellow], Subscript[ℛ, 2]}, PlotRange -> {{-2, 2}, {-2, 2}, {-2, 2}}]The tangent plane to a parametric surface f[u,v] is given by InfinitePlane[f[u,v],{∂uf[u,v],∂vf[u,v]}]. Find the tangent plane to the parametric surface
:
f1[u_, v_] := {Cos[u]Sin[v], Sin[u]Sin[v], Cos[v]};s1 = ParametricPlot3D[f1[u, v], {u, 0, 2π}, {v, 0, π}];
t1 = With[{u = 3π / 4, v = π / 4}, Graphics3D[{Opacity[0.5], InfinitePlane[f1[u, v], {Derivative[1, 0][f1][u, v], Derivative[0, 1][f1][u, v]}]}]];Show[s1, t1, PlotRangePadding -> Scaled[0.2]]Find the tangent plane to the surface
:
f2[u_, v_] := {4 + (3 + Cos[v]) Sin[u], 4 + (3 + Cos[v]) Cos[u], 4 + Sin[v]};s2 = ParametricPlot3D[f2[u, v], {u, 0, 2π}, {v, 0, 2π}];
t2 = With[{u = 3π / 4, v = π / 4}, Graphics3D[{Opacity[0.5], InfinitePlane[f2[u, v], {Derivative[1, 0][f2][u, v], Derivative[0, 1][f2][u, v]}]}]];Show[s2, t2, PlotRangePadding -> Scaled[0.2]]Find the intersection points of a sphere, a plane, and a surface defined by
:
Subscript[ℛ, 1] = Sphere[];
Subscript[ℛ, 2] = InfinitePlane[{{0, 0, 0}, {0, 1, 0}, {1, 0, 1}}];pts = Solve[2 x y == z^2 && {x, y, z}∈Subscript[ℛ, 1] && {x, y, z}∈Subscript[ℛ, 2], {x, y, z}, Reals]Visualize intersection points:
intersections = {PointSize[Large], Red, Point[{x, y, z} /. pts]};r1 = {Opacity[0.5, LightBlue], Subscript[ℛ, 1]};r2 = {Opacity[0.5, Yellow], Subscript[ℛ, 2]};r3 = ContourPlot3D[2 x y == z^2, {x, -1.2, 1.2}, {y, -1.2, 1.2}, {z, -1.2, 1.2}, Mesh -> None, ContourStyle -> Opacity[0.5]];Show[{Graphics3D[{r1, r2, intersections}], r3}, Boxed -> False]Partition space in a BubbleChart:
b = BubbleChart3D[RandomReal[1, {10, 4}]];p = InfinitePlane[{0, 0, 0}, {{0, 0, 1}, {1, 1, 0}}];Show[b, Graphics3D[{Opacity@0.7, p}]]pt = {1, 1, 1};
v1 = {3, -1, -2};
v2 = {-1, 3, -2};ip = InfinitePlane[pt, {v1, v2}];Define a ReflectionTransform using a point on the plane and its normal vector:
n = Cross[Normalize[v1], Normalize[v2]];rt = ReflectionTransform[n, pt];Visualize the reflection of a unit cube about the plane:
c = Cuboid[];Graphics3D[{Opacity[0.5], {Yellow, ip}, {Blue, c}, {Red, GeometricTransformation[c, rt]}}]Properties & Relations (6)
InfinitePlane[{p1,p2,p3}] is equivalent to InfinitePlane[p1,{p2-p1,p3-p1}]:
{Subscript[p, 1], Subscript[p, 2], Subscript[p, 3]} = {{1, 0, 0}, {1, 1, 1}, {0, 0, 1}};Subscript[ℛ, 1] = InfinitePlane[{Subscript[p, 1], Subscript[p, 2], Subscript[p, 3]}];
Subscript[ℛ, 2] = InfinitePlane[Subscript[p, 1], {Subscript[p, 2] - Subscript[p, 1], Subscript[p, 3] - Subscript[p, 1]}];RegionEqual[Subscript[ℛ, 1], Subscript[ℛ, 2]]InfinitePlane[p,{v1,v2}] is equivalent to Hyperplane[Cross[v1,v2],p] in 3D:
Subscript[ℛ, 1] = InfinitePlane[{1, 2, 3}, {{1, 1, 0}, {0, 1, 1}}];Subscript[ℛ, 2] = Hyperplane[Cross[{1, 1, 0}, {0, 1, 1}], {1, 2, 3}];RegionEqual[Subscript[ℛ, 1], Subscript[ℛ, 2]]ParametricRegion can represent any InfinitePlane:
Subscript[ℛ, 1] = InfinitePlane[{1, 2, 3}, {{4, 5, 6}, {7, 8, 9}}];Subscript[ℛ, 2] = ParametricRegion[{1, 2, 3} + u{4, 5, 6} + v{7, 8, 9}, {{u, -∞, ∞}, {v, -∞, ∞}}];RegionEqual[Subscript[ℛ, 1], Subscript[ℛ, 2]]ImplicitRegion can represent any InfinitePlane:
Subscript[ℛ, 1] = ImplicitRegion[-9 (-1 + x) - 3 (-2 + y) + 4 (-3 + z) == 0, {x, y, z}];Subscript[ℛ, 2] = InfinitePlane[{{1, 2, 3}, {-4, 5, -6}, {7, -8, 9}}];RegionEqual[Subscript[ℛ, 1], Subscript[ℛ, 2]]InfinitePlane is a special case of ConicHullRegion:
pts = {{1, 2, 3}, {-4, 5, -6}, {7, -8, 9}};RegionEqual[ConicHullRegion[pts], InfinitePlane[pts]]Any InfinitePlane can be represented as a union of two HalfPlane regions:
{Subscript[p, 1], Subscript[v, 1], Subscript[v, 2]} = {{0, 1, 3}, {1, -1, -2}, {1, 1, 0}};Subscript[ℛ, 1] = InfinitePlane[Subscript[p, 1], {Subscript[v, 1], Subscript[v, 2]}];Subscript[ℛ, 2] = RegionUnion[HalfPlane[Subscript[p, 1], Subscript[v, 1], Subscript[v, 2]], HalfPlane[Subscript[p, 1], Subscript[v, 1], -Subscript[v, 2]]];RegionEqual[Subscript[ℛ, 1], Subscript[ℛ, 2]]Neat Examples (2)
A random collection of planes:
Graphics3D[Table[{Hue[RandomReal[]], InfinitePlane[RandomReal[1, {3, 3}]]}, {25}], Lighting -> "Neutral", PlotRange -> 1]Sweep an infinite plane around an axis:
Table[Graphics3D[{Opacity[0.3], ColorData["Rainbow"][Rescale[θ, {0, π / 2}]], InfinitePlane[{0, 0, 0}, {{1, 0, 0}, {1, Cos[θ], Sin[θ]}}]}], {θ, 0, π, π / 12}]//ShowSee Also
HalfPlane Hyperplane Polygon InfiniteLine HalfLine ConicHullRegion
Function Repository: HessianPlane
Related Guides
Text
Wolfram Research (2014), InfinitePlane, Wolfram Language function, https://reference.wolfram.com/language/ref/InfinitePlane.html (updated 2016).
CMS
Wolfram Language. 2014. "InfinitePlane." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2016. https://reference.wolfram.com/language/ref/InfinitePlane.html.
APA
Wolfram Language. (2014). InfinitePlane. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/InfinitePlane.html
BibTeX
@misc{reference.wolfram_2026_infiniteplane, author="Wolfram Research", title="{InfinitePlane}", year="2016", howpublished="\url{https://reference.wolfram.com/language/ref/InfinitePlane.html}", note=[Accessed: 12-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_infiniteplane, organization={Wolfram Research}, title={InfinitePlane}, year={2016}, url={https://reference.wolfram.com/language/ref/InfinitePlane.html}, note=[Accessed: 12-June-2026]}