Class FieldEllipse<T extends CalculusFieldElement<T>>

  • Type Parameters:
    T - the type of the field elements

    public class FieldEllipse<T extends CalculusFieldElement<T>>
    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:
    12.0
    Author:
    Luc Maisonobe
    See Also:
    Ellipsoid.getPlaneSection(FieldVector3D, FieldVector3D)
    • Constructor Detail

      • FieldEllipse

        public FieldEllipse​(FieldVector3D<T> center,
                            FieldVector3D<T> u,
                            FieldVector3D<T> v,
                            T a,
                            T 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 FieldVector3D<T> getCenter()
        Get the center of the 2D ellipse.
        Returns:
        center of the 2D ellipse
      • getU

        public FieldVector3D<T> getU()
        Get the unit vector along the major axis.
        Returns:
        unit vector along the major axis
      • getV

        public FieldVector3D<T> getV()
        Get the unit vector along the minor axis.
        Returns:
        unit vector along the minor axis
      • getA

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

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

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

        public FieldVector3D<T> pointAt​(T 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 FieldVector3D<T> toSpace​(FieldVector2D<T> 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(FieldVector3D)
      • projectToEllipse

        public FieldVector2D<T> projectToEllipse​(FieldVector2D<T> 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 TimeStampedFieldPVCoordinates<T> projectToEllipse​(TimeStampedFieldPVCoordinates<T> 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 FieldVector2D<T> getCenterOfCurvature​(FieldVector2D<T> 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