Class RMBezier

  • All Implemented Interfaces:
    java.lang.Cloneable

    public class RMBezier
    extends RMQuadratic
    This class models a simple bezier curve, providing methods for extracting points, distance calculation, bisection, hit detection and such.
    • Constructor Detail

      • RMBezier

        public RMBezier()
        Creates a new bezier.
      • RMBezier

        public RMBezier​(RMPoint startPoint,
                        RMPoint controlPoint1,
                        RMPoint controlPoint2,
                        RMPoint endPoint)
        Creates a new bezier from the given start point, control points and end point.
      • RMBezier

        public RMBezier​(double x1,
                        double y1,
                        double x2,
                        double y2,
                        double x3,
                        double y3,
                        double x4,
                        double y4)
        Creates a new bezier from the given start point, control points and end point.
    • Method Detail

      • getPoint

        public RMPoint getPoint​(double t,
                                RMPoint aPoint)
        Returns a specific point on the curve at the given parametric value (from 0-1).
        Overrides:
        getPoint in class RMQuadratic
      • getPointCount

        public int getPointCount()
        Returns the point count of segment.
        Overrides:
        getPointCount in class RMQuadratic
      • getPointX

        public double getPointX​(int anIndex)
        Returns the x of point at given index.
        Overrides:
        getPointX in class RMQuadratic
      • getPointY

        public double getPointY​(int anIndex)
        Returns the y of point at given index.
        Overrides:
        getPointY in class RMQuadratic
      • getDistance

        public double getDistance​(RMPoint aPoint)
        Returns the minimum distance from the given point to this segment.
        Overrides:
        getDistance in class RMQuadratic
      • getDistanceBezier

        public double getDistanceBezier​(RMPoint aPoint)
        Returns the minimum distance from the given point to the curve.
      • getMinX

        public double getMinX()
        Returns the min x point of this bezier.
        Overrides:
        getMinX in class RMQuadratic
      • getMinY

        public double getMinY()
        Returns the min y point of this bezier.
        Overrides:
        getMinY in class RMQuadratic
      • getMaxX

        public double getMaxX()
        Returns the max x point of this bezier.
        Overrides:
        getMaxX in class RMQuadratic
      • getMaxY

        public double getMaxY()
        Returns the max y point of this bezier.
        Overrides:
        getMaxY in class RMQuadratic
      • getBounds

        public void getBounds​(java.awt.geom.Rectangle2D aRect)
        Returns the bounds.
        Overrides:
        getBounds in class RMQuadratic
      • getBounds

        public static void getBounds​(double x0,
                                     double y0,
                                     double x1,
                                     double y1,
                                     double x2,
                                     double y2,
                                     double x3,
                                     double y3,
                                     java.awt.geom.Rectangle2D aRect)
        Returns the bounds of the bezier.
      • getHitInfo

        public RMHitInfo getHitInfo​(RMLine aLine)
        Returns the hit info for this bezier and a given line.
        Overrides:
        getHitInfo in class RMLine
      • getHead

        public RMLine getHead​(double t)
        Returns a new line from this line's start point to given parametric location t (defined from 0-1) on this line.
        Overrides:
        getHead in class RMLine
      • getTail

        public RMLine getTail​(double t)
        Returns a new line from given parametric location t (defined from 0-1) on this line to this line's end point.
        Overrides:
        getTail in class RMLine
      • subdivide

        public void subdivide​(RMBezier left,
                              RMBezier right,
                              double t)
        Returns a bezier curve from this curve's start point to the given parametric location (0-1).
      • setEnd

        public void setEnd​(double t)
        Reset this curve's end point to the given parametric location (0-1).
        Overrides:
        setEnd in class RMLine
      • setStart

        public void setStart​(double t)
        Reset this curve's start point to the given parametric location (0-1).
        Overrides:
        setStart in class RMLine
      • toString

        public java.lang.String toString()
        Returns a string representation of this bezier.
        Overrides:
        toString in class RMLine