Fit an ellipse

Syntax: ELLIPSE\FIT xin yin
ELLIPSE\FIT\NPTS xin yin n
ELLIPSE\FIT\FRACTION xin yin frac
ELLIPSE\FIT\FRACTION\NPTS xin yin frac n
ELLIPSE\FIT\XYOUT xin yin xout yout
ELLIPSE\FIT\XYOUT\NPTS xin yin n xout yout
ELLIPSE\FIT\XYOUT\FRACTION xin yin frac xout yout
ELLIPSE\FIT\XYOUT\FRACTION\NPTS xin yin frac n xout yout
ELLIPSE\FIT\PARAMETERS xin yin a b xc yc angle
ELLIPSE\FIT\PARAMETERS\NPTS xin yin a b xc yc angle n
ELLIPSE\FIT\PARAMETERS\FRACTION xin yin frac a b xc yc angle
ELLIPSE\FIT\PARAMETERS\FRACTION\NPTS xin yin frac a b xc yc angle n
ELLIPSE\FIT\PARAMETERS\XYOUT xin yin a b xc yc angle xout yout
ELLIPSE\FIT\PARAMETERS\XYOUT\NPTS xin yin a b xc yc angle n xout yout
ELLIPSE\FIT\PARAMETERS\XYOUT\FRACTION xin yin frac a b xc yc angle xout yout
ELLIPSE\FIT\PARAMETERS\XYOUT\FRACTION\NPTS xin yin frac a b xc yc angle n xout yout

If the \FIT qualifier is used, then the first two parameters, xin and yin, are assumed to be vectors which contain data points to which an ellipse is to be fitted.

Parameter order

The order in which the qualifiers appear is irrelevant. The order in which the command parameters appear is fixed: { fraction } { a b xc yc angle } { npts } { xout yout }

Method

The major axis radius and the centre are found by least squares fitting a line through the data points. The ratio of the major axis radius to the minor axis radius is found by computing the standard deviations about the major and minor axes. The minimum value of the major axis is found for each point so that the point will be inside the ellipse, then a value for the major axis is picked so as to be greater than or equal to the specified fraction of the values.

Fraction of points within ellipse

Syntax: ELLIPSE\FIT\FRACTION xin yin frac
ELLIPSE\FIT\FRACTION\NPTS xin yin frac n
ELLIPSE\FIT\XYOUT\FRACTION xin yin frac xout yout
ELLIPSE\FIT\XYOUT\FRACTION\NPTS xin yin frac n xout yout
ELLIPSE\FIT\PARAMETERS\FRACTION xin yin frac a b xc yc angle
ELLIPSE\FIT\PARAMETERS\FRACTION\NPTS xin yin frac a b xc yc angle n
ELLIPSE\FIT\PARAMETERS\XYOUT\FRAC xin yin frac a b xc yc angle xout yout
ELLIPSE\FIT\PARAMETERS\XYOUT\FRAC\NPTS xin yin frac a b xc yc angle n xout yout

frac defaults to 0.9, so, by default, the ellipse is fit to the data points so that it encloses 90% of the data points. If the \FRACTION qualifier is used, then a scalar, frac, representing the fraction of data points to be within the ellipse will be expected, 0 < frac < 1.

Output parameters

Syntax: ELLIPSE\FIT\PARAMETERS xin yin a b xc yc angle
ELLIPSE\FIT\PARAMETERS\NPTS xin yin a b xc yc angle n
ELLIPSE\FIT\PARAMETERS\FRACTION xin yin frac a b xc yc angle
ELLIPSE\FIT\PARAMETERS\FRACTION\NPTS xin yin frac a b xc yc angle n
ELLIPSE\FIT\PARAMETERS\XYOUT xin yin a b xc yc angle xout yout
ELLIPSE\FIT\PARAMETERS\XYOUT\NPTS xin yin a b xc yc angle n xout yout
ELLIPSE\FIT\PARAMETERS\XYOUT\FRACTION xin yin frac a b xc yc angle xout yout
ELLIPSE\FIT\PARAMETERS\XYOUT\FRACTION\NPTS xin yin frac a b xc yc angle n xout yout

If the \PARAMETERS qualifier is used, output scalar names will be expected to receive the resulting ellipse parameters:

amajor axis radius
bminor axis radius
cx, cy    x and y coordinates of the centre
angleangle of the major axis, in degrees, measured counter-clockwise from the horizontal

  Ellipse explicitly defined