Class Ellipse


  • public class Ellipse
    extends Object
    Model of a 2D ellipse in 3D space.

    These ellipses are mainly created as plane sections of general 3D ellipsoids, but can be used for other purposes.

    Instances of this class are guaranteed to be immutable.

    Since:
    7.0
    Author:
    Luc Maisonobe
    See Also:
    Ellipsoid.getPlaneSection(Vector3D, Vector3D)
    • Constructor Detail

      • Ellipse

        public Ellipse​(Vector3D center,
                       Vector3D u,
                       Vector3D v,
                       double a,
                       double b,
                       Frame frame)
        Simple constructor.
        Parameters:
        center - center of the 2D ellipse
        u - unit vector along the major axis
        v - unit vector along the minor axis
        a - semi major axis
        b - semi minor axis
        frame - frame in which the ellipse is defined
    • Method Detail

      • getCenter

        public Vector3D getCenter()
        Get the center of the 2D ellipse.
        Returns:
        center of the 2D ellipse
      • getU

        public Vector3D getU()
        Get the unit vector along the major axis.
        Returns:
        unit vector along the major axis
      • getV

        public Vector3D getV()
        Get the unit vector along the minor axis.
        Returns:
        unit vector along the minor axis
      • getA

        public double getA()
        Get the semi major axis.
        Returns:
        semi major axis
      • getB

        public double getB()
        Get the semi minor axis.
        Returns:
        semi minor axis
      • getFrame

        public Frame getFrame()
        Get the defining frame.
        Returns:
        defining frame
      • pointAt

        public Vector3D pointAt​(double theta)
        Get a point of the 2D ellipse.
        Parameters:
        theta - angular parameter on the ellipse (really the eccentric anomaly)
        Returns:
        ellipse point at theta, in underlying ellipsoid frame
      • toSpace

        public Vector3D toSpace​(Vector2D p)
        Create a point from its ellipse-relative coordinates.
        Parameters:
        p - point defined with respect to ellipse
        Returns:
        point defined with respect to 3D frame
        See Also:
        toPlane(Vector3D)
      • toPlane

        public Vector2D toPlane​(Vector3D p)
        Project a point to the ellipse plane.
        Parameters:
        p - point defined with respect to 3D frame
        Returns:
        point defined with respect to ellipse
        See Also:
        toSpace(Vector2D)
      • projectToEllipse

        public Vector2D projectToEllipse​(Vector2D p)
        Find the closest ellipse point.
        Parameters:
        p - point in the ellipse plane to project on the ellipse itself
        Returns:
        closest point belonging to 2D meridian ellipse
      • projectToEllipse

        public TimeStampedPVCoordinates projectToEllipse​(TimeStampedPVCoordinates pv)
        Project position-velocity-acceleration on an ellipse.
        Parameters:
        pv - position-velocity-acceleration to project, in the reference frame
        Returns:
        projected position-velocity-acceleration
      • getCenterOfCurvature

        public Vector2D getCenterOfCurvature​(Vector2D point)
        Find the center of curvature (point on the evolute) at the nadir of a point.
        Parameters:
        point - point in the ellipse plane
        Returns:
        center of curvature of the ellipse directly at point nadir
        Since:
        7.1