# al_calculate_spline

void al_calculate_spline(float* dest, int stride, float points[8],
float thickness, int num_segments)

Introduced in **5.0.0**

Calculates a Bézier spline given 4 control points. If `thickness <= 0`

, then `num_segments`

of points are required in the destination, otherwise twice as many are needed. The destination buffer should consist of regularly spaced (by distance of stride bytes) doublets of floats, corresponding to x and y coordinates of the vertices.

*Parameters:*

- dest - The destination buffer
- stride - Distance (in bytes) between starts of successive pairs of coordinates
- points - An array of 4 pairs of coordinates of the 4 control points
- thickness - Thickness of the spline ribbon
- num_segments - The number of points to calculate

See also: al_draw_spline, al_calculate_arc, al_calculate_ribbon

*Most helpful discussions:*