resqpy.olio.triangulation.surrounding_xy_ring

resqpy.olio.triangulation.surrounding_xy_ring(p, count=12, radial_factor=10.0, radial_distance=None, inner_ring=False, saucer_angle=None)[source]

Creates a set of points surrounding the point set p, in the xy plane.

Parameters
  • p (numpy float array of shape (..., 3)) – xyz set of points to be surrounded

  • count (int) – the number of points to generate in the surrounding ring

  • radial_factor (float) – a distance factor roughly determining the radius of the ring relative to the ‘radius’ of the outermost points in p

  • radial_distance (float) – if present, the radius of the ring of points, unless radial_factor results in a greater distance in which case that is used

  • inner_ring (bool, default False) – if True, an inner ring of points, with double count, is created at a radius just outside that of the furthest flung original point; this improves triangulation of the extended point set when the original has a non-convex hull; radial_distance does not effect the inner ring radius

  • saucer_angle (float, optional) – if present, an angle in degrees, between +/- 90 (but less than 90 degrees) being an angle to determine a z offset for the ring(s); a +ve angle results in a -ve z shift

Returns

numpy float array of shape (N, 3) being xyz points in surrounding ring(s); z is set constant to mean value of z in p (optionally adjussted based on saucer_angle); N is count if inner_ring is False, 3 * count if True