get_normals_along_line

get_normals_along_line#

zeroheliumkit.src.utils.get_normals_along_line(line: LineString | MultiLineString, locs: float | list, norm: bool = True) list[source]#

Calculates normal angles of a line at desired locations.

Parameters:
  • line (LineString | MultiLineString) – The given line.

  • locs (float | list) – The point locations along the line.

  • norm (bool, optional) – If True, locs are treated as normalized values (0 to 1). Defaults to True.

Returns:

A list of normal angles at the specified locations.

Return type:

normal_angles(list)

Example

>>> line = LineString([(0, 0), (1, 1), (2, 0)])
>>> locs = [0.25, 0.5, 0.75]
>>> result = get_normals_along_line(line, locs)
>>> print(result)
    [45.0, 45.0, 45.0]