Partitions input region using straight path segments in the manner of ‘*rays*‘. Intersections of ‘ray’ segments with each other are called *junctions,* and intersections at iregion boundary – *entrances*. **Delaunay Triangulation** is used (related to Voronoi Diagram, which is its dual).

Entrances (boundary intersections) are determined by the list of boundary parameters or *selections*. Junction placement (ray intersections) is determined by sample distribution *radius*:

rays(boundary_selections,radius)`{`

RegionList} {PathList} {JunctionList}

Alternatively, a *number of samples* can be specified, and the algorithm tries to guess the sample radius:

rays(boundary_selections,number_of_samples)`{`

RegionList} {PathList} {JunctionList}

Optionally, minimal offset from junctions to the boundary can be provided:

rays(boundary_selections,...,junction_offset)`{`

RegionList} {PathList} {JunctionList}

*boundary selections*– list of parameter values within the range [0..1]. For example*[0, 0.25, 0.5, 0.75]*will place entrances at the corners of a square.*radius*,*number_of_samples*– minimum radius between any two junctions, and respectively the number of junctions. Also, see Cells Rule for the explanation with one difference: in Cells Rule radius refers to the*distance*between*quarters*, rather than*junctions*).*offset*– centres of the junctions is placed with this minimum distance from the boundary.*RegionList, PathList, JunctionList*– label selector lists (see Grid Rule for explanation).