Index of Functions: A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X
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

nplnpt_c ( Nearest point on line to point )

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)
J. Diaz del Rio     (ODC Space)

Version

-CSPICE Version 1.0.1, 04-AUG-2021 (JDR)

Edited the header to comply with NAIF standard.

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

Index_Entries

distance between point and line
nearest point on line to point
Fri Dec 31 18:41:10 2021