# al_calculate_arc

void al_calculate_arc(float* dest, int stride, float cx, float cy,
float rx, float ry, float start_theta, float delta_theta, float thickness,
int num_segments)

Introduced in **5.0.0**

Calculates an elliptical arc, and sets the vertices in the destination buffer to the calculated positions. If `thickness <= 0`

, then `num_points`

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
- cx, cy - Center of the arc
- rx, ry - Radii of the arc
- start_theta - The initial angle from which the arc is calculated
- delta_theta - Angular span of the arc (pass a negative number to switch direction)
- thickness - Thickness of the arc
- num_points - The number of points to calculate

See also: al_draw_arc, al_calculate_spline, al_calculate_ribbon

*Most helpful discussions:*