# Synopsis

double mth_PointToLineDistProjParm(long option, int dim, double *pnt, double *line_pnt, double *line_vec_or_pnt, double *proj_pnt, double *parm)

# Purpose

Find the projection of a point to a line

# Description

The distance between a point and a straight line, the projected point of the point to the line, and the parameter of the projected point on the line are computed. If the line is a degenerate one, i.e. a point, the distance between the point and line_pnt on the line will be returned as the needed distance and line_pnt will be the projected point.

When the distance is 0, the parameter value can be used to determine if the point is located between the two endpoints, yes if 0 <= parm <= 1; no otherwise.

# Input

## option

### MTH_PTVEC

Option giving form of line definition. If MTH_PTVEC is set, the line is in point/vector format, and line_vec_or_pnt is a direction vector; otherwise, it is a point on the line.

## dim

The dimension of points (2 or 3)

## pnt

The point

## line_pnt

The point on the line

## line_vec_or_pnt

Either a second point on the line or a direction vector

# Output

## proj_pnt

The projected point

## parm

### MTH_NOOPT

proj_pnt = (1-parm)*line_pnt + parm*line_vec_or_pnt;

### MTH_PTVEC

proj_pnt = line_pnt + parm*line_vec_or_pnt.

# Tolerances

MTH_ZERO_TOL

# Return

Distance between the point and the line