To find the normal vector to a plane you have two routes. If the plane comes as an equation ax + by + cz = d, the normal is simply the coefficients ⟨a, b, c⟩. If it comes as three points, take two edge vectors and cross them: n̂ = (AB × AC)/‖AB × AC‖. Either way you finish by dividing by the magnitude, which you can do in the calculator to confirm the length is 1.
A normal vector points straight out of the plane, perpendicular to every line drawn in it. That single direction is what lighting, collision, and flux calculations all reach for, which makes this one of the most used operations in the whole subject.
The two directions a plane faces
A plane has two sides, like a sheet of paper, so it has two perpendicular directions. One is n̂ and the other is −n̂, pointing opposite ways along the same line. Both are legitimate normals. Which one you get is not an accident of the math, it is decided by the order you feed vectors into the cross product, and that is the detail most pages leave out.
Route one: from the plane equation
This is the shortcut. When the plane is written as ax + by + cz = d, the numbers in front of x, y, and z already form a normal vector. There is no cross product to compute, only a normalization.
Take the plane 2x + 3y + 6z = 12. The normal vector is n = ⟨2, 3, 6⟩, straight off the coefficients. The constant 12 tells you how far the plane sits from the origin, not which way it faces, so it plays no part here.
You have the normal ⟨2, 3, 6⟩. Normalize it and confirm the length is 1.
Orientation: the opposite face is −n̂ = ⟨−0.2857, −0.4286, −0.8571⟩, which you get by reading the plane as −2x − 3y − 6z = −12. Same plane, other side.
Route two: from three points
When you only have points, you build the normal yourself. Two points define one vector lying in the plane; a third gives a second. Their cross product is perpendicular to both, so it is perpendicular to the plane.
Take the points P = (1, 0, 0), Q = (0, 2, 0), and R = (0, 0, 2). Form the edges PQ = Q − P = ⟨−1, 2, 0⟩ and PR = R − P = ⟨−1, 0, 2⟩. Their cross product is PQ × PR = ⟨4, 2, 2⟩, and that is the normal vector before scaling.
Orientation: compute PR × PQ instead and you get ⟨−4, −2, −2⟩, which normalizes to −n̂ = ⟨−0.8165, −0.4082, −0.4082⟩.
The sign, and the right-hand rule
The order matters, and here is why. The cross product is anti-commutative: AB × AC = −(AC × AB). Swap the two edges and the normal flips to the opposite face. This is not an error to avoid, it is a choice to make on purpose.
The right-hand rule tells you which way a given order points. Curl the fingers of your right hand from the first vector toward the second, and your thumb points along the cross product. For PQ × PR, fingers sweeping from PQ to PR, the thumb gives ⟨4, 2, 2⟩. Reverse the sweep and it points the other way. A short refresher on the operation lives in the Wikipedia entry on the cross product.
In graphics, a surface normal has to point outward, away from the solid, for lighting to read correctly. Flip it and the surface faces its light away from the camera, so the triangle renders black. When a model shows up with dark patches, a reversed normal is the usual cause, and the fix is swapping the two edges in the cross product.
In physics the sign sets the direction of flux through the surface. Reverse the normal and the flux changes sign, which turns an outflow into an inflow. Neither field lets you ignore orientation, so decide your convention before you compute, not after.
The normal to a curved surface
A plane faces the same way everywhere, which is what makes it easy. A curved surface changes direction from point to point, so its normal is a local thing.
Write the surface as a level set F(x, y, z) = c. The gradient ∇F = ⟨∂F/∂x, ∂F/∂y, ∂F/∂z⟩ points perpendicular to the surface at each point, so it is a normal vector there. Evaluate it at your point, then normalize it the same way, dividing by ‖∇F‖. That is the whole idea, and the two senses of “normal,” surface versus curve, are sorted out in the unit normal hub.
Take the sphere x² + y² + z² = 9 at the point (2, 2, 1). That point sits on the sphere because 4 + 4 + 1 = 9. Set F(x, y, z) = x² + y² + z², so the gradient is ∇F = ⟨2x, 2y, 2z⟩. Evaluated at (2, 2, 1) that is ⟨4, 4, 2⟩, the normal before scaling.
The gradient earns its perpendicularity from the level set. Moving along the surface holds F fixed at 9, so the value does not change in any direction that lies in the surface. The gradient points along the direction of fastest change, which has to be the one direction that leaves the surface, straight out. That is why ∇F lands normal to it, on this sphere and on any smooth surface written the same way.
Orientation: the outward normal at a point on a sphere is the direction from the center to that point. Here the center is the origin, so that direction is ⟨2, 2, 1⟩, which points the same way as the gradient. The two agree, as they should.
Point-normal form
Once you have a normal n and a single point p that lies on the plane, you have the plane itself. It is every point x for which n · (x − p) = 0. The vector x − p runs from the known point to a candidate point, and it lies in the plane only when it is perpendicular to the normal. The dot product measures exactly that perpendicularity, so setting it to zero is the same as asking the point to lie on the plane.
Expand that equation and it becomes ax + by + cz = d, where ⟨a, b, c⟩ = n and d = n · p. This is the bridge between the two routes. Build the normal from three points with a cross product, pick any one of those points as p, and you can read off the equation directly. The “three points” route and the “equation” route are two ends of the same construction.
To see it close, reuse the three points from earlier. Their cross product gave the normal ⟨4, 2, 2⟩, and P = (1, 0, 0) lies on the plane. Then d = n · P = 4(1) + 2(0) + 2(0) = 4, so the plane is 4x + 2y + 2z = 4. Read the coefficients back and you get ⟨4, 2, 2⟩ again, the same normal you started with. The construction returns you to where you began.
Try one yourself
Find the unit normal to the plane 3x − 4y + 12z = 5. Read the coefficients off the equation, compute the magnitude, then divide. The constant on the right is not part of the answer. Work it through before you read on, and keep an eye out for the perfect square hiding in the magnitude, which is what makes the numbers come out clean.
The normal is n = ⟨3, −4, 12⟩, straight from the coefficients. Its magnitude is √(3² + (−4)² + 12²) = √169 = 13, so the unit normal is n̂ = ⟨0.2308, −0.3077, 0.9231⟩. The length check holds: 0.2308² + (−0.3077)² + 0.9231² = 1. The other face is −n̂ = ⟨−0.2308, 0.3077, −0.9231⟩. Notice the constant 5 played no role at all; slide the plane nearer or farther from the origin and this unit normal does not change.
If you want the version pointing the other way, there is nothing to recompute. Negate each component and you have −n̂, the normal for the back face of the same plane. Which one you report is a convention, not a calculation, the same choice the cross-product order handed you in the three-points route. When a problem asks for the outward normal or the upward one, that phrasing is what picks the sign for you.
A quick check on the equation route
Reading the normal off the equation is so fast it feels like cheating, so confirm it once. The plane x + 2y + 2z = 6 has normal ⟨1, 2, 2⟩, magnitude √(1 + 4 + 4) = 3, and unit normal ⟨1/3, 2/3, 2/3⟩ = ⟨0.3333, 0.6667, 0.6667⟩. The check: 0.3333² + 0.6667² + 0.6667² = 1.
Every plane parallel to that one, no matter its distance from the origin, shares this same unit normal. Change the constant on the right and the direction does not budge. For a coordinate system where the perpendicular directions turn as you move, rather than staying fixed, the polar unit vectors are the next thing to look at.
Mind the sign. A plane gives you n̂ and −n̂, and the cross-product order, not luck, decides which one lands on your page.
Frequently Asked Questions
How do you find the normal vector to a plane?
If you have the plane equation ax + by + cz = d, the normal is ⟨a, b, c⟩. If you have three points, build two edge vectors and take their cross product. Divide by the magnitude to get the unit normal.
Why does a plane have two normal vectors?
A plane has two faces, so two opposite perpendicular directions, n̂ and −n̂. The order of the cross product decides which one you compute. Reverse the order and every sign flips.
How do I get the unit normal from the plane equation?
Take the coefficients as the normal vector n = ⟨a, b, c⟩, compute its magnitude, then divide. For 2x + 3y + 6z = 12 the normal is ⟨2, 3, 6⟩, its length is 7, and the unit normal is ⟨2/7, 3/7, 6/7⟩.
Does the constant d affect the normal direction?
No. The constant d only slides the plane closer to or farther from the origin. The direction it faces depends solely on the coefficients a, b, and c.
What is the normal to a curved surface at a point?
Write the surface as F(x, y, z) = c and take the gradient ∇F at the point. The gradient is perpendicular to the surface there, so normalizing it gives the unit normal.