# 2D Spline (X-Y automation) The 2D spline is a process which allows to control a 2D position in time, by modifying a curve in the user interface.

# Modifying the spline

Points can be dragged with the mouse.

• To create a new control point, double-click on the curve.
• To remove a point, double-click on it.
• Due to the way cubic splines work, there cannot be less than four points.

# Generating a curve

It is possible to use math formulas to generate a specific spline.

To do so, right-click on a spline, and select `Generate curve` in the menu.

The available variable is `t`. It is evaluated between 0 and 1.

The syntax uses ExprTK (see ExprTK support reference page).

Here are some useful examples:

## Circle

``````var tp := 2 * PI * t;
x := tp * cos(tp);
y := tp * sin(tp);
``````

## Spiral

``````var tp := 2 * PI * t;
x := tp * cos(tp);
y := tp * sin(tp);
``````

## Expanding spiral

``````var tp := 2 * PI * t;
x := 0.04 * exp(0.3 * tp) * cos(tp);
y := 0.04 * exp(0.3 * tp) * sin(tp);
``````

## Lissajoux

``````var tp := 2 * PI * t;
x := cos(3 * tp);
y := sin(2 * tp);
``````
``````var tp := 2 * PI * t;
x := cos(5 * tp);
y := sin(3 * tp);
``````

## Hypotrochroids

### Star 1

``````var tp := 6 * PI * t;
var a := 5;
var b := 3;
var d := 3;
x := (a - b) * cos(tp) + d * cos(tp * (a - b) / b);
y := (a - b) * sin(tp) - d * sin(tp * (a - b) / b);
``````

### Star 2

``````var tp := 6 * PI * t;
var a := 5;
var b := 3;
var d := 5;
x := (a - b) * cos(tp) + d * cos(tp * (a - b) / b);
y := (a - b) * sin(tp) - d * sin(tp * (a - b) / b);
``````

## Others

See https://en.wikipedia.org/wiki/Parametric_equation for inspiration.

``````var tp := 2 * PI * t;
var a := 4;
var b := 1;
var c := 4;
var d := 1;

var j := 3;
var k := 3;
x := cos(a * tp) - pow(cos(b * tp), j);
y := sin(c * tp) - pow(sin(d * tp), k);
``````
``````var tp := 2 * PI * t;
var a := 80;
var b := 1;
var c := 80;
var d := 1;

var j := 3;
var k := 3;
x := cos(a * tp) - pow(cos(b * tp), j);
y := sin(c * tp) - pow(sin(d * tp), k);
``````