Description
Fit data to an ellipse, hyperbola, or parabola. Bootstrapping is available when needed. The conic curve can be rotated through an arbitrary angle and the fit will still succeed. Helper functions are provided to convert generator coefficients from one style to another, generate test data sets, rotate conic section parameters, and so on. References include Nikolai Chernov (2014) "Fitting ellipses, circles, and lines by least squares" <https://people.cas.uab.edu/~mosya/cl/>; A. W. Fitzgibbon, M. Pilu, R. B. Fisher (1999) "Direct Least Squares Fitting of Ellipses" IEEE Trans. PAMI, Vol. 21, pages 476-48; N. Chernov, Q. Huang, and H. Ma (2014) "Fitting quadratic curves to data points", British Journal of Mathematics & Computer Science, 4, 33-60; N. Chernov and H. Ma (2011) "Least squares fitting of quadratic curves and surfaces", Computer Vision, Editor S. R. Yoshida, Nova Science Publishers, pp. 285-302.
Downloads
306
Last 30 days
13087th
676
Last 90 days
2.5K
Last year
Trend: +52.2% (30d vs prior 30d)
CRAN Check Status
Show all 14 flavors
| Flavor | Status |
|---|---|
| r-devel-linux-x86_64-debian-clang | NOTE |
| r-devel-linux-x86_64-debian-gcc | NOTE |
| r-devel-linux-x86_64-fedora-clang | NOTE |
| r-devel-linux-x86_64-fedora-gcc | NOTE |
| r-devel-macos-arm64 | NOTE |
| r-devel-windows-x86_64 | NOTE |
| r-oldrel-macos-arm64 | NOTE |
| r-oldrel-macos-x86_64 | NOTE |
| r-oldrel-windows-x86_64 | NOTE |
| r-patched-linux-x86_64 | NOTE |
| r-release-linux-x86_64 | NOTE |
| r-release-macos-arm64 | NOTE |
| r-release-macos-x86_64 | NOTE |
| r-release-windows-x86_64 | NOTE |
Check details (14 non-OK)
Rd files
checkRd: (-1) fitConic.Rd:66-73: Lost braces
66 | \code{parA }{vector of the six "ABCDEF" coefficients
| ^
checkRd: (-1) fitConic.Rd:67: Lost braces
67 | \code{RSS }{'root sum square' figure of merit describing the relative fit quality}
| ^
checkRd: (-1) fitConic.Rd:68: Lost braces
68 | \code{iters }{number of iterations at convergence}
| ^
checkRd: (-1) fitConic.Rd:69-71: Lost braces
69 | \code{exitCode }{1 means ellipse, 2 means hyperbola, 3 means parabola.
| ^
checkRd: (-1) rotateA.Rd:59: Lost braces; missing escapes or markup?
59 | For \code{xyrot} {a Nx2 array of the x,y coordinates of the rotated data set. }
| ^
Rd files
checkRd: (-1) fitConic.Rd:66-73: Lost braces
66 | \code{parA }{vector of the six "ABCDEF" coefficients
| ^
checkRd: (-1) fitConic.Rd:67: Lost braces
67 | \code{RSS }{'root sum square' figure of merit describing the relative fit quality}
| ^
checkRd: (-1) fitConic.Rd:68: Lost braces
68 | \code{iters }{number of iterations at convergence}
| ^
checkRd: (-1) fitConic.Rd:69-71: Lost braces
69 | \code{exitCode }{1 means ellipse, 2 means hyperbola, 3 means parabola.
| ^
checkRd: (-1) rotateA.Rd:59: Lost braces; missing escapes or markup?
59 | For \code{xyrot} {a Nx2 array of the x,y coordinates of the rotated data set. }
| ^
Rd files
checkRd: (-1) fitConic.Rd:66-73: Lost braces
66 | \code{parA }{vector of the six "ABCDEF" coefficients
| ^
checkRd: (-1) fitConic.Rd:67: Lost braces
67 | \code{RSS }{'root sum square' figure of merit describing the relative fit quality}
| ^
checkRd: (-1) fitConic.Rd:68: Lost braces
68 | \code{iters }{number of iterations at convergence}
| ^
checkRd: (-1) fitConic.Rd:69-71: Lost braces
69 | \code{exitCode }{1 means ellipse, 2 means hyperbola, 3 means parabola.
| ^
checkRd: (-1) rotateA.Rd:59: Lost braces; missing escapes or markup?
59 | For \code{xyrot} {a Nx2 array of the x,y coordinates of the rotated data set. }
| ^
Rd files
checkRd: (-1) fitConic.Rd:66-73: Lost braces
66 | \code{parA }{vector of the six "ABCDEF" coefficients
| ^
checkRd: (-1) fitConic.Rd:67: Lost braces
67 | \code{RSS }{'root sum square' figure of merit describing the relative fit quality}
| ^
checkRd: (-1) fitConic.Rd:68: Lost braces
68 | \code{iters }{number of iterations at convergence}
| ^
checkRd: (-1) fitConic.Rd:69-71: Lost braces
69 | \code{exitCode }{1 means ellipse, 2 means hyperbola, 3 means parabola.
| ^
checkRd: (-1) rotateA.Rd:59: Lost braces; missing escapes or markup?
59 | For \code{xyrot} {a Nx2 array of the x,y coordinates of the rotated data set. }
| ^
Rd files
checkRd: (-1) fitConic.Rd:66-73: Lost braces
66 | \code{parA }{vector of the six "ABCDEF" coefficients
| ^
checkRd: (-1) fitConic.Rd:67: Lost braces
67 | \code{RSS }{'root sum square' figure of merit describing the relative fit quality}
| ^
checkRd: (-1) fitConic.Rd:68: Lost braces
68 | \code{iters }{number of iterations at convergence}
| ^
checkRd: (-1) fitConic.Rd:69-71: Lost braces
69 | \code{exitCode }{1 means ellipse, 2 means hyperbola, 3 means parabola.
| ^
checkRd: (-1) rotateA.Rd:59: Lost braces; missing escapes or markup?
59 | For \code{xyrot} {a Nx2 array of the x,y coordinates of the rotated data set. }
| ^
Rd files
checkRd: (-1) fitConic.Rd:66-73: Lost braces
66 | \code{parA }{vector of the six "ABCDEF" coefficients
| ^
checkRd: (-1) fitConic.Rd:67: Lost braces
67 | \code{RSS }{'root sum square' figure of merit describing the relative fit quality}
| ^
checkRd: (-1) fitConic.Rd:68: Lost braces
68 | \code{iters }{number of iterations at convergence}
| ^
checkRd: (-1) fitConic.Rd:69-71: Lost braces
69 | \code{exitCode }{1 means ellipse, 2 means hyperbola, 3 means parabola.
| ^
checkRd: (-1) rotateA.Rd:59: Lost braces; missing escapes or markup?
59 | For \code{xyrot} {a Nx2 array of the x,y coordinates of the rotated data set. }
| ^
Rd files
checkRd: (-1) fitConic.Rd:66-73: Lost braces
66 | \code{parA }{vector of the six "ABCDEF" coefficients
| ^
checkRd: (-1) fitConic.Rd:67: Lost braces
67 | \code{RSS }{'root sum square' figure of merit describing the relative fit quality}
| ^
checkRd: (-1) fitConic.Rd:68: Lost braces
68 | \code{iters }{number of iterations at convergence}
| ^
checkRd: (-1) fitConic.Rd:69-71: Lost braces
69 | \code{exitCode }{1 means ellipse, 2 means hyperbola, 3 means parabola.
| ^
checkRd: (-1) rotateA.Rd:59: Lost braces; missing escapes or markup?
59 | For \code{xyrot} {a Nx2 array of the x,y coordinates of the rotated data set. }
| ^
Rd files
checkRd: (-1) fitConic.Rd:66-73: Lost braces
66 | \code{parA }{vector of the six "ABCDEF" coefficients
| ^
checkRd: (-1) fitConic.Rd:67: Lost braces
67 | \code{RSS }{'root sum square' figure of merit describing the relative fit quality}
| ^
checkRd: (-1) fitConic.Rd:68: Lost braces
68 | \code{iters }{number of iterations at convergence}
| ^
checkRd: (-1) fitConic.Rd:69-71: Lost braces
69 | \code{exitCode }{1 means ellipse, 2 means hyperbola, 3 means parabola.
| ^
checkRd: (-1) rotateA.Rd:59: Lost braces; missing escapes or markup?
59 | For \code{xyrot} {a Nx2 array of the x,y coordinates of the rotated data set. }
| ^
Rd files
checkRd: (-1) fitConic.Rd:66-73: Lost braces
66 | \code{parA }{vector of the six "ABCDEF" coefficients
| ^
checkRd: (-1) fitConic.Rd:67: Lost braces
67 | \code{RSS }{'root sum square' figure of merit describing the relative fit quality}
| ^
checkRd: (-1) fitConic.Rd:68: Lost braces
68 | \code{iters }{number of iterations at convergence}
| ^
checkRd: (-1) fitConic.Rd:69-71: Lost braces
69 | \code{exitCode }{1 means ellipse, 2 means hyperbola, 3 means parabola.
| ^
checkRd: (-1) rotateA.Rd:59: Lost braces; missing escapes or markup?
59 | For \code{xyrot} {a Nx2 array of the x,y coordinates of the rotated data set. }
| ^
Rd files
checkRd: (-1) fitConic.Rd:66-73: Lost braces
66 | \code{parA }{vector of the six "ABCDEF" coefficients
| ^
checkRd: (-1) fitConic.Rd:67: Lost braces
67 | \code{RSS }{'root sum square' figure of merit describing the relative fit quality}
| ^
checkRd: (-1) fitConic.Rd:68: Lost braces
68 | \code{iters }{number of iterations at convergence}
| ^
checkRd: (-1) fitConic.Rd:69-71: Lost braces
69 | \code{exitCode }{1 means ellipse, 2 means hyperbola, 3 means parabola.
| ^
checkRd: (-1) rotateA.Rd:59: Lost braces; missing escapes or markup?
59 | For \code{xyrot} {a Nx2 array of the x,y coordinates of the rotated data set. }
| ^
Rd files
checkRd: (-1) fitConic.Rd:66-73: Lost braces
66 | \code{parA }{vector of the six "ABCDEF" coefficients
| ^
checkRd: (-1) fitConic.Rd:67: Lost braces
67 | \code{RSS }{'root sum square' figure of merit describing the relative fit quality}
| ^
checkRd: (-1) fitConic.Rd:68: Lost braces
68 | \code{iters }{number of iterations at convergence}
| ^
checkRd: (-1) fitConic.Rd:69-71: Lost braces
69 | \code{exitCode }{1 means ellipse, 2 means hyperbola, 3 means parabola.
| ^
checkRd: (-1) rotateA.Rd:59: Lost braces; missing escapes or markup?
59 | For \code{xyrot} {a Nx2 array of the x,y coordinates of the rotated data set. }
| ^
Rd files
checkRd: (-1) fitConic.Rd:66-73: Lost braces
66 | \code{parA }{vector of the six "ABCDEF" coefficients
| ^
checkRd: (-1) fitConic.Rd:67: Lost braces
67 | \code{RSS }{'root sum square' figure of merit describing the relative fit quality}
| ^
checkRd: (-1) fitConic.Rd:68: Lost braces
68 | \code{iters }{number of iterations at convergence}
| ^
checkRd: (-1) fitConic.Rd:69-71: Lost braces
69 | \code{exitCode }{1 means ellipse, 2 means hyperbola, 3 means parabola.
| ^
checkRd: (-1) rotateA.Rd:59: Lost braces; missing escapes or markup?
59 | For \code{xyrot} {a Nx2 array of the x,y coordinates of the rotated data set. }
| ^
Rd files
checkRd: (-1) fitConic.Rd:66-73: Lost braces
66 | \code{parA }{vector of the six "ABCDEF" coefficients
| ^
checkRd: (-1) fitConic.Rd:67: Lost braces
67 | \code{RSS }{'root sum square' figure of merit describing the relative fit quality}
| ^
checkRd: (-1) fitConic.Rd:68: Lost braces
68 | \code{iters }{number of iterations at convergence}
| ^
checkRd: (-1) fitConic.Rd:69-71: Lost braces
69 | \code{exitCode }{1 means ellipse, 2 means hyperbola, 3 means parabola.
| ^
checkRd: (-1) rotateA.Rd:59: Lost braces; missing escapes or markup?
59 | For \code{xyrot} {a Nx2 array of the x,y coordinates of the rotated data set. }
| ^
Rd files
checkRd: (-1) fitConic.Rd:66-73: Lost braces
66 | \code{parA }{vector of the six "ABCDEF" coefficients
| ^
checkRd: (-1) fitConic.Rd:67: Lost braces
67 | \code{RSS }{'root sum square' figure of merit describing the relative fit quality}
| ^
checkRd: (-1) fitConic.Rd:68: Lost braces
68 | \code{iters }{number of iterations at convergence}
| ^
checkRd: (-1) fitConic.Rd:69-71: Lost braces
69 | \code{exitCode }{1 means ellipse, 2 means hyperbola, 3 means parabola.
| ^
checkRd: (-1) rotateA.Rd:59: Lost braces; missing escapes or markup?
59 | For \code{xyrot} {a Nx2 array of the x,y coordinates of the rotated data set. }
| ^
Check History
NOTE 0 OK · 14 NOTE · 0 WARNING · 0 ERROR · 0 FAILURE Mar 10, 2026
Rd files
checkRd: (-1) fitConic.Rd:66-73: Lost braces
66 | \code{parA }{vector of the six "ABCDEF" coefficients
| ^
checkRd: (-1) fitConic.Rd:67: Lost braces
67 | \code{RSS }{'root sum square' figure of merit describing the relative
...[truncated]...
2 means hyperbola, 3 means parabola.
| ^
checkRd: (-1) rotateA.Rd:59: Lost braces; missing escapes or markup?
59 | For \code{xyrot} {a Nx2 array of the x,y coordinates of the rotated data set. }
| ^
Rd files
checkRd: (-1) fitConic.Rd:66-73: Lost braces
66 | \code{parA }{vector of the six "ABCDEF" coefficients
| ^
checkRd: (-1) fitConic.Rd:67: Lost braces
67 | \code{RSS }{'root sum square' figure of merit describing the relative
...[truncated]...
2 means hyperbola, 3 means parabola.
| ^
checkRd: (-1) rotateA.Rd:59: Lost braces; missing escapes or markup?
59 | For \code{xyrot} {a Nx2 array of the x,y coordinates of the rotated data set. }
| ^
Rd files
checkRd: (-1) fitConic.Rd:66-73: Lost braces
66 | \code{parA }{vector of the six "ABCDEF" coefficients
| ^
checkRd: (-1) fitConic.Rd:67: Lost braces
67 | \code{RSS }{'root sum square' figure of merit describing the relative
...[truncated]...
2 means hyperbola, 3 means parabola.
| ^
checkRd: (-1) rotateA.Rd:59: Lost braces; missing escapes or markup?
59 | For \code{xyrot} {a Nx2 array of the x,y coordinates of the rotated data set. }
| ^
Rd files
checkRd: (-1) fitConic.Rd:66-73: Lost braces
66 | \code{parA }{vector of the six "ABCDEF" coefficients
| ^
checkRd: (-1) fitConic.Rd:67: Lost braces
67 | \code{RSS }{'root sum square' figure of merit describing the relative
...[truncated]...
2 means hyperbola, 3 means parabola.
| ^
checkRd: (-1) rotateA.Rd:59: Lost braces; missing escapes or markup?
59 | For \code{xyrot} {a Nx2 array of the x,y coordinates of the rotated data set. }
| ^
Rd files
checkRd: (-1) fitConic.Rd:66-73: Lost braces
66 | \code{parA }{vector of the six "ABCDEF" coefficients
| ^
checkRd: (-1) fitConic.Rd:67: Lost braces
67 | \code{RSS }{'root sum square' figure of merit describing the relative
...[truncated]...
2 means hyperbola, 3 means parabola.
| ^
checkRd: (-1) rotateA.Rd:59: Lost braces; missing escapes or markup?
59 | For \code{xyrot} {a Nx2 array of the x,y coordinates of the rotated data set. }
| ^
Rd files
checkRd: (-1) fitConic.Rd:66-73: Lost braces
66 | \code{parA }{vector of the six "ABCDEF" coefficients
| ^
checkRd: (-1) fitConic.Rd:67: Lost braces
67 | \code{RSS }{'root sum square' figure of merit describing the relative
...[truncated]...
2 means hyperbola, 3 means parabola.
| ^
checkRd: (-1) rotateA.Rd:59: Lost braces; missing escapes or markup?
59 | For \code{xyrot} {a Nx2 array of the x,y coordinates of the rotated data set. }
| ^
Rd files
checkRd: (-1) fitConic.Rd:66-73: Lost braces
66 | \code{parA }{vector of the six "ABCDEF" coefficients
| ^
checkRd: (-1) fitConic.Rd:67: Lost braces
67 | \code{RSS }{'root sum square' figure of merit describing the relative
...[truncated]...
2 means hyperbola, 3 means parabola.
| ^
checkRd: (-1) rotateA.Rd:59: Lost braces; missing escapes or markup?
59 | For \code{xyrot} {a Nx2 array of the x,y coordinates of the rotated data set. }
| ^
Rd files
checkRd: (-1) fitConic.Rd:66-73: Lost braces
66 | \code{parA }{vector of the six "ABCDEF" coefficients
| ^
checkRd: (-1) fitConic.Rd:67: Lost braces
67 | \code{RSS }{'root sum square' figure of merit describing the relative
...[truncated]...
2 means hyperbola, 3 means parabola.
| ^
checkRd: (-1) rotateA.Rd:59: Lost braces; missing escapes or markup?
59 | For \code{xyrot} {a Nx2 array of the x,y coordinates of the rotated data set. }
| ^
Rd files
checkRd: (-1) fitConic.Rd:66-73: Lost braces
66 | \code{parA }{vector of the six "ABCDEF" coefficients
| ^
checkRd: (-1) fitConic.Rd:67: Lost braces
67 | \code{RSS }{'root sum square' figure of merit describing the relative
...[truncated]...
2 means hyperbola, 3 means parabola.
| ^
checkRd: (-1) rotateA.Rd:59: Lost braces; missing escapes or markup?
59 | For \code{xyrot} {a Nx2 array of the x,y coordinates of the rotated data set. }
| ^
Rd files
checkRd: (-1) fitConic.Rd:66-73: Lost braces
66 | \code{parA }{vector of the six "ABCDEF" coefficients
| ^
checkRd: (-1) fitConic.Rd:67: Lost braces
67 | \code{RSS }{'root sum square' figure of merit describing the relative
...[truncated]...
2 means hyperbola, 3 means parabola.
| ^
checkRd: (-1) rotateA.Rd:59: Lost braces; missing escapes or markup?
59 | For \code{xyrot} {a Nx2 array of the x,y coordinates of the rotated data set. }
| ^
Rd files
checkRd: (-1) fitConic.Rd:66-73: Lost braces
66 | \code{parA }{vector of the six "ABCDEF" coefficients
| ^
checkRd: (-1) fitConic.Rd:67: Lost braces
67 | \code{RSS }{'root sum square' figure of merit describing the relative
...[truncated]...
2 means hyperbola, 3 means parabola.
| ^
checkRd: (-1) rotateA.Rd:59: Lost braces; missing escapes or markup?
59 | For \code{xyrot} {a Nx2 array of the x,y coordinates of the rotated data set. }
| ^
Rd files
checkRd: (-1) fitConic.Rd:66-73: Lost braces
66 | \code{parA }{vector of the six "ABCDEF" coefficients
| ^
checkRd: (-1) fitConic.Rd:67: Lost braces
67 | \code{RSS }{'root sum square' figure of merit describing the relative
...[truncated]...
2 means hyperbola, 3 means parabola.
| ^
checkRd: (-1) rotateA.Rd:59: Lost braces; missing escapes or markup?
59 | For \code{xyrot} {a Nx2 array of the x,y coordinates of the rotated data set. }
| ^
Rd files
checkRd: (-1) fitConic.Rd:66-73: Lost braces
66 | \code{parA }{vector of the six "ABCDEF" coefficients
| ^
checkRd: (-1) fitConic.Rd:67: Lost braces
67 | \code{RSS }{'root sum square' figure of merit describing the relative
...[truncated]...
2 means hyperbola, 3 means parabola.
| ^
checkRd: (-1) rotateA.Rd:59: Lost braces; missing escapes or markup?
59 | For \code{xyrot} {a Nx2 array of the x,y coordinates of the rotated data set. }
| ^
Rd files
checkRd: (-1) fitConic.Rd:66-73: Lost braces
66 | \code{parA }{vector of the six "ABCDEF" coefficients
| ^
checkRd: (-1) fitConic.Rd:67: Lost braces
67 | \code{RSS }{'root sum square' figure of merit describing the relative
...[truncated]...
2 means hyperbola, 3 means parabola.
| ^
checkRd: (-1) rotateA.Rd:59: Lost braces; missing escapes or markup?
59 | For \code{xyrot} {a Nx2 array of the x,y coordinates of the rotated data set. }
| ^