Skip to content

Main content

Quadratic Bezier Split Control Points

Finite planar Bezier control points in supplied order, unit parameter t; split at explicit t into two complete control polygons with duplicated join endpoint, preserving curve geometry.

Loading tool…

Description

Split at explicit t into two complete control polygons with duplicated join endpoint, preserving curve geometry.

A planar Bézier curve is defined by an ordered control polygon: three points for a quadratic or four for a cubic. Its parameter t runs from 0 to 1 and generally does not measure arc length. Derivative vectors, curve positions, control points and polynomial coefficients are different representations of the same parameterized geometry.

Split at explicit t into two complete control polygons with duplicated join endpoint, preserving curve geometry.

When to use this tool

Use this tool to split at explicit t into two complete control polygons with duplicated join endpoint, preserving curve geometry.

How to use the tool and how it works

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

For a quadratic curve, build the De Casteljau interpolation triangle at t. Its first points form the left control polygon and its last points in reverse level order form the right; both include the shared curve point.1

Input fieldMeaning and unitsAccepted input
pointsOrdered planar control points: three for a quadratic, four for a cubic. Basis-conversion tools use the representation stated above.Dense list of at most 128 rows of at most 128 finite numbers; the operation’s shape constraints also apply.
tDimensionless curve parameter from 0 through 1.Finite number satisfying the stated comparisons.
Output fieldInterpretation
resultObject containing the fields below.
result.leftComplete control polygon for the original interval [0,t], reparameterized to [0,1].
result.rightComplete control polygon for the original interval [t,1], reparameterized to [0,1].
json
{
  "input": {
    "points": [
      [
        0,
        0
      ],
      [
        1,
        1
      ],
      [
        2,
        0
      ]
    ],
    "t": 0.5
  },
  "output": {
    "result": {
      "left": [
        [
          0,
          0
        ],
        [
          0.5,
          0.5
        ],
        [
          1,
          0.5
        ]
      ],
      "right": [
        [
          1,
          0.5
        ],
        [
          1.5,
          0.5
        ],
        [
          2,
          0
        ]
      ]
    }
  }
}

Limitations and assumptions

  • Each subcurve is parameterized over its own [0,1]. Endpoint splits retain degenerate control polygons; no arc-length partition is inferred.
  • Each geometric control point has two finite coordinates within ±1,000,000,000. t and interval endpoints are dimensionless in [0,1]. Calculations use floating arithmetic and do not perform curve fitting or robust topology analysis.
  • 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

Keep control polygons and constant-first power coefficients clearly labeled. Use separate arc-length integration or adaptive sampling when physical spacing or geometric approximation error matters.

References

  1. Tool behavior and example: Quadratic Bezier Split Control Points — tool.io

Similar or alternative tools