# makeArc

Create a binary map of an arc within a 2D grid.

## Syntax

    arc = makeArc(grid_size, arc_pos, radius, diameter, focus_pos)
    arc = makeArc(grid_size, arc_pos, radius, diameter, focus_pos, ...)

## Description

`makeArc` creates a binary map of an arc within a two-dimensional grid. The arc position is denoted by 1's in the matrix with 0's elsewhere. The arc is found using the mid-point circle algorithm, and is simply connected so that any grid point on the arc will have at most 2 neighbours.

The midpoint of the arc is set by `arc_pos`. The orientation of the arc is set by `focus_pos`, which corresponds to any point on the axis of the arc (note, this must not be equal to `arc_pos`). It is assumed that the arc angle is equal to or less than pi radians. If the radius is set to `inf`, a line is generated.

## Examples

    % define parameters
    grid_size = [128, 128];
    arc_pos   = [32, 32];
    radius    = 60;
    diameter  = 61;
    focus_pos = grid_size;

    % create arc
    arc = makeArc(grid_size, arc_pos, radius, diameter, focus_pos, 'Plot', true);

## Inputs

`grid_size` | size of the 2D grid given as a three element vector [Nx, Ny] [grid points]
`bowl_pos` | midpoint of the arc given as a two element vector [ax, ay] [grid points]
`radius` | radius of curvature of the arc [grid points]
`diameter` | aperture diameter (length of line connecting arc endpoints) [grid points]
`focus_pos` | any point on the beam axis of the arc given as a two element vector [fx, fy] [grid points]

## Optional Inputs

Optional 'string', value pairs that may be used to modify the default computational settings.

Input | Valid Settings | Default | Description
--- | --- | --- | ---
`'Plot'` | (Boolean scalar) | `false` | Boolean controlling whether the arc is plotted using `imagesc`.

## Outputs

`arcs` | 2D binary map of arcs
`arc` | 2D labelled matrix of arcs

## See Also

`makeBowl`, `makeLine`, `makeMultiArc`