Synopsis
int mth_LeastSquaresLine2D(long option, double *pts, long n, int nc, double eps, double *p, double *pv)
Purpose
Compute the least squares line thru a set of 2D points.
Description
This routine creates a line which fits a set of data points in the least squares sense. The data is considered 2D (xy-plane), but the points array may have 2 or 3 coordinates per point (z-coordinate is ignored). This method does not consider orientation (direction) of the line. Furthermore, no correspondence between the data points and the extent of (p,pv) should be assumed. This routine uses formulas from R. A. Liming's book: Mathematics for Computer Graphics Aero Publishers, Inc. ; Fallbrook, CA ; 1979
Input
option
MTH_PTVEC
Option giving form of line definition (pv). If option is set, the line is computed in point/vector form (pv is a vector). Otherwise, the line is in 2 point form (pv is a point).
pts
The data points. The i-th point is located at pts[i*nc], where i=0,...,n-1.
n
The number of points in pts.
nc
The number of coordinates per point (nc=2 or 3, but the z-coord will not be used).
eps
Zero length tolerance for 2D points.
Output
p
Point on the line (2D).
pv
Point on the line or vector direction (see option). pv is 2D.
Return
= 0 : Line computed
= 1 : No line computed
.fi