ForHosting KIT · Math

Equation of a plane

The plane through (1, 0, 0), (0, 1, 0) and (0, 0, 1) has a, b and c all equal to 0.57735026919 and d equal to −0.57735026919. Enter three points, or one point and a normal vector, and get the equation with no hand-made cross product. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon

Runs in your browser. Free, unlimited — your data never leaves this page.

Feed it coordinates from a CAD model, a physics problem or a homework exercise and get a clean, exact equation in one call — no manual cross product, no sign mistakes, no forgotten normalization step.

Two ways to define a plane

A plane in three-dimensional space is fully determined once you fix its orientation and one point it passes through. In practice that information arrives in one of two shapes. The first is three points that lie on the plane — the corners of a triangular face of a mesh, three surveyed positions, three points read off a drawing.

As long as the three points are not collinear, exactly one plane contains all of them. The second shape is a point on the plane plus a normal vector, the direction perpendicular to the surface. This is how planes appear in physics, in rendering engines and in the output of many geometry libraries.

Sending both forms, or an incomplete form, is rejected with a clear validation error so you never get an answer computed from a guess.

How the equation is derived

From three points the method is classical analytic geometry. Two direction vectors are formed by subtracting the first point from the second and third, and their cross product gives a vector perpendicular to both — that is, a normal to the plane. From a point and a normal the work is shorter: the normal supplies a, b and c directly, and d follows by substituting the point into the equation.

In both cases the normal is then scaled to unit length and every coefficient is rounded to twelve decimal places. That normalization matters: the same plane can be written with infinitely many scaled coefficient sets, and a canonical form lets you compare two equations, detect duplicates and compute point-to-plane distances without extra steps.

Where it fits in real work

Geometry pipelines constantly need plane equations in coefficient form. A collision-detection stage classifies points against faces; a rendering shader needs the signed distance to a clipping plane; a structural model checks whether a bolt pattern is flat enough to seat a gasket. Doing the cross product and substitution by hand is error-prone and boring; doing it inline in every project duplicates the same ten lines everywhere.

This capability centralizes the derivation behind one deterministic function. There is no state, no randomness and no network access involved, so a given input always produces byte-identical output you can safely cache.

Mesh and CAD face processing

Turn the three vertices of a triangular face into the plane coefficients a collision or shading stage expects.

Physics and engineering homework

Check a hand-derived plane equation from a point and normal against a canonical, normalized answer.

Flatness validation in pipelines

Feed three measured points, get the plane, and compute distances of further points to quantify flatness.

Which input forms are accepted?

Either three points p1, p2 and p3, or a point together with a normal vector. Exactly one of the two forms must be sent.

Why are the coefficients normalized?

Scaling a, b, c and d by the same factor describes the same plane. Normalizing the normal to unit length gives one canonical answer, which makes results comparable across calls.

Can I use the result for point-to-plane distance?

Yes. Because the normal has unit length, the signed distance of any point (x, y, z) to the plane is simply a*x + b*y + c*z + d.

Are the results deterministic?

Yes. The computation is pure arithmetic with fixed rounding, so the same input always returns the same output.

What happens if the three points lie on one line?

Then no single plane passes through them, because infinitely many do. The calculator says so with a clear message instead of returning a broken equation, so check that your points are not collinear or repeated.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/math/equation-of-a-plane

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/math/equation-of-a-plane \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"p1":{"x":1,"y":0,"z":0},"p2":{"x":0,"y":1,"z":0}}'
{
  "p1": {
    "x": 1,
    "y": 0,
    "z": 0
  },
  "p2": {
    "x": 0,
    "y": 1,
    "z": 0
  }
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "math.equation_of_a_plane",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

The equation of a plane calculator derives the Cartesian form ax + by + cz + d = 0 from the two ways a plane is usually given in practice: three non-collinear points lying on it, or a single point together with a normal vector. It returns the coefficients a, b, c and d with the normal vector normalized to unit length, so results from different inputs are directly comparable.

Two ways to define a plane

The equation of a plane endpoint accepts either form. Send p1, p2 and p3, or send point and normal, and it returns the same canonical output: the coefficients of ax + by + cz + d = 0.

How the equation is derived

If the points are collinear or coincident, the cross product is the zero vector and no unique plane exists, so the endpoint answers with an invalid_input error saying exactly that instead of returning a degenerate equation.

Where it fits in real work

The exact same code runs free in your browser on this page — paste coordinates, read the equation — and the identical result is available over the API at $0.002 per call when you need it inside an automated workflow.

What does it cost?

$0.002 per request via the API. It is also free to run in your browser on this page.

What happens if my three points are collinear?

The request fails with an invalid_input error explaining that collinear points do not define a unique plane. Failed validations are not billed.

Read the full KIT documentation →