Skip to content

Main content

Triangle Point Barycentric Coordinates

Invert planar barycentric coordinates on a nondegenerate supplied triangle; floating arithmetic and signed exterior weights are retained.

Loading tool…

Description

Invert planar barycentric coordinates on a nondegenerate supplied triangle; floating arithmetic and signed exterior weights are retained.

Planar geometry operates on two-coordinate Cartesian points and explicit shape boundaries. A closed rectangle includes its edges, while a segment parameter locates a point along a supporting line. Signed cross products, areas and axis gaps preserve orientation or direction information that a magnitude alone would lose.

Invert planar barycentric coordinates on a nondegenerate supplied triangle; floating arithmetic and signed exterior weights are retained.

When to use this tool

Use this tool to invert planar barycentric coordinates on a nondegenerate supplied triangle; floating arithmetic and signed exterior weights are retained.

How to use the tool and how it works

  1. Enter vertices, point using the input definitions below.
  2. Run the operation. Resolve malformed-input errors before interpreting the result.
  3. Read result.weights. Interpret signs, units, ordering and null values using the rules below.

Let den = cross(A,B,C). Reject den = 0; calculate u = cross(A,point,C)/den and v = cross(A,B,point)/den, returning [1−u−v,u,v] for vertices [A,B,C].1

Input fieldMeaning and unitsAccepted input
verticesExactly three planar vertices [[Ax,Ay],[Bx,By],[Cx,Cy]] in weight order.Dense list of at most 128 rows of at most 128 finite numbers; the operation’s shape constraints also apply.
pointPlanar point [x,y] in the shape’s coordinate units.Dense list of at most 128 finite numbers, subject to the stated integer/shape rules.
Output fieldInterpretation
resultObject containing the fields below.
result.weightsThree signed dimensionless weights in the input vertex order.
json
{
  "input": {
    "vertices": [
      [
        0,
        0
      ],
      [
        2,
        0
      ],
      [
        0,
        2
      ]
    ],
    "point": [
      0.5,
      0.5
    ]
  },
  "output": {
    "result": {
      "weights": [
        0.5,
        0.25,
        0.25
      ]
    }
  }
}

Limitations and assumptions

  • Negative weights describe exterior positions. Near-degenerate triangles can amplify floating-point error; no numerical tolerance is inferred.
  • Point components and rectangle bounds are finite within ±1,000,000,000. Rectangles use [minX,minY,maxX,maxY] with ordered inclusive bounds. Floating arithmetic is used without an implicit robustness tolerance.
  • Every declared top-level input is required and unknown fields are rejected. Ordinary strings are limited to 8,192 UTF-16 code units and lists to 128 entries, with tighter operation-specific bounds where stated. JSON text has bounded nesting and node counts.
  • Numeric outputs must be finite and within the absolute safe-integer magnitude; exact larger integers use decimal text. Source positions are zero-based UTF-16 offsets and span ends are exclusive unless a different convention is explicitly stated.

Alternative or Complementary methods

Choose the boundary and coordinate convention explicitly. Use robust geometric predicates or a topology-aware library when near-coincidence, holes, invalid polygons or geographic coordinates matter.

References

  1. Tool behavior and example: Triangle Point Barycentric Coordinates — tool.io

Similar or alternative tools

  • Triangle Barycentric Point

    Map three supplied barycentric weights summing to one to a planar triangle point; weights may be negative, no inside-triangle claim.

  • Triangle Barycentric Membership

    Audit supplied three-coordinate barycentric closed-triangle membership with an explicit nonnegative absolute tolerance; does not validate a triangle’s geometry.