k-Wave Toolbox

makeMultiArc

Create a binary map of multiple arcs within a 2D grid.

Syntax

[arcs, arcs_labelled] = makeMultiArc(grid_size, arc_pos, radius, diameter, focus_pos)
[arcs, arcs_labelled] = makeMultiArc(grid_size, arc_pos, radius, diameter, focus_pos, ...)

Description

makeMultiArc creates a binary map of multiple arcs within a two-dimensional grid using makeArc. The position of the arcs is denoted by 1's in the matrix with 0's elsewhere. A labelled matrix can also be returned, where the position of the first arc is denoted by 1's, the position of the second arc by 2's, and so on.

Examples

% define grid parameters
x_size              = 300e-3;
Nx                  = 256;
dx                  = x_size / Nx;
grid_size           = [Nx, Nx];

% create a Cartesian circle with the x, y positions of the arcs
circle_radius       = 125e-3;
num_arcs            = 16;
arc_pos             = makeCartCircle(circle_radius, num_arcs, [1, 1] * x_size / 2).';
 
% convert the Cartesian arc positions to grid points
arc_pos             = round(arc_pos/dx);

% define element parameters
radius              = round(x_size / (2 * dx));
diameter            = 21;
focus_pos           = [1, 1] * Nx/2;

% create arcs
makeMultiArc(grid_size, arc_pos, radius, diameter, focus_pos, 'Plot', true);

Inputs

grid_size size of the 2D grid given as a two element vector [Nx, Ny] [grid points]
arc_pos midpoint of each arc given as a matrix of dimensions N x 2, with each row specifying the midpoint of each arc as a two element vector [ax, ay] [grid points]
radius radius of curvature of each arc given as either a single number (if the arcs have the same radius), or an N-element vector containing the radius for each arc [grid points]
diameter diameter of each arc (length of straight line between the end points) given as either a single number (if the arcs have the same diameter), or an N-element vector containing the diameter for each arc [grid points]
focus_pos any point on the beam axis of the arc given as either a two element vector (if the arcs have the same focus_pos), or as a matrix of dimensions N x 2, with each row specifying the focus_pos for each 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 array is plotted using imagesc.

Outputs

arc 2D binary map of an arc

See Also

makeArc, makeMultiBowl