Skip to Content
You are viewing the v1 docs of Svelte 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/svelte'; 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]

A path string you can use in an SVG, the labelX and labelY position (center of path) and offsetX, offsetY between source handle and label.

  • path: the path to use in an SVG <path> element.
  • labelX: the x position you can use to render a label for this edge.
  • labelY: the y position you can use to render a label for this edge.
  • offsetX: the absolute difference between the source x position and the x position of the middle of this path.
  • offsetY: the absolute difference between the source y position and the y position of the middle of this path.

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