nplnpt_c

 Procedure Abstract Required_Reading Keywords Brief_I/O Detailed_Input Detailed_Output Parameters Exceptions Files Particulars Examples Restrictions Literature_References Author_and_Institution Version Index_Entries

#### Procedure

```   void nplnpt_c ( ConstSpiceDouble    linpt  ,
ConstSpiceDouble    lindir ,
ConstSpiceDouble    point  ,
SpiceDouble         pnear  ,
SpiceDouble       * dist       )

```

#### Abstract

```
Find the nearest point on a line to a specified point, and find
the distance between the two points.
```

```
None.
```

```
GEOMETRY
MATH
VECTOR

```

#### Brief_I/O

```
Variable  I/O  Description
--------  ---  --------------------------------------------------
linpt,
lindir     I   Point on a line and the line's direction vector.
point      I   A second point.
pnear      O   Nearest point on the line to point.
dist       O   Distance between point and pnear.
```

#### Detailed_Input

```
linpt
lindir         are, respectively, a point and a direction vector
that define a line in 3-dimensional space.  The
line is the set of points

linpt   +   t * lindir

where t is any real number.

point          is a point in 3-dimensional space.
```

#### Detailed_Output

```
pnear          is the nearest point on the input line to the input
point.

dist           is the distance between the input line and input
point.
```

```
None.
```

#### Exceptions

```
1)  If the line direction vector lindir is the zero vector, the
error SPICE(ZEROVECTOR) is signaled.
```

```
None.
```

#### Particulars

```
For every line L and point P, there is a unique closest point
on L to P.  Call this closest point C.  It is always true that
P - C  is perpendicular to L, and the length of P - C is called
the "distance" between P and L.
```

#### Examples

```
1)  Suppose a line passes through the point ( 1, 2, 3 ) and
has direction vector ( 0, 1, 1 ).  We wish to find the
closest point on the line to the point ( -6, 9, 10 ).  We
can use the code fragment

#include "SpiceUsr.h"
.
.
.
LINPT   =  1.0;
LINPT   =  2.0;
LINPT   =  3.0;

LINDIR  =  0.0;
LINDIR  =  1.0;
LINDIR  =  1.0;

POINT   = -6.0;
POINT   =  9.0;
POINT   = 10.0;

nplnpt_c ( linpt, lindir, point, pnear, &dist );

After the call, pnear will take the value

( 1., 9., 10. );

dist will be 7.0.
```

```
None.
```

```
None.
```

#### Author_and_Institution

```
N.J. Bachman   (JPL)
```

#### Version

```
-CSPICE Version 1.0.0, 16-AUG-1999 (NJB)
```

#### Index_Entries

```
distance between point and line
nearest point on line to point
```
`Wed Apr  5 17:54:39 2017`