Skip to Content
You are viewing the v12 docs of React Flow. You can find the latest version here.
ReferenceUtils

getBezierPath()

Source on GitHub 

The getBezierPath util returns everything you need to render a bezier edge between two nodes.

import { Position, getBezierPath } from '@xyflow/react'; const source = { x: 0, y: 20 }; const target = { x: 150, y: 100 }; const [path, labelX, labelY, offsetX, offsetY] = getBezierPath({ sourceX: source.x, sourceY: source.y, sourcePosition: Position.Right, targetX: target.x, targetY: target.y, targetPosition: Position.Left, }); console.log(path); //=> "M0,20 C75,20 75,100 150,100" console.log(labelX, labelY); //=> 75, 60 console.log(offsetX, offsetY); //=> 75, 40

Signature

Parameters:
NameTypeDefault
[0].sourceXnumber

The x position of the source handle.

[0].sourceYnumber

The y position of the source handle.

[0].sourcePositionPosition

The position of the source handle.

Position.Bottom
[0].targetXnumber

The x position of the target handle.

[0].targetYnumber

The y position of the target handle.

[0].targetPositionPosition

The position of the target handle.

Position.Top
[0].curvaturenumber

The curvature of the bezier edge.

0.25
Returns:
[path: string, labelX: number, labelY: number, offsetX: number, offsetY: number]

Notes

  • This function returns a tuple (aka a fixed-size array) to make it easier to work with multiple edge paths at once.
Last updated on