Class RMBezier

All Implemented Interfaces:
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.
  • Field Details

  • Constructor Details

    • 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 Details

    • setCurve

      public void setCurve(RMPoint p1, RMPoint p2, RMPoint p3, RMPoint p4)
      Sets the values of the curve.
    • 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(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, 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
    • getHitInfo

      public RMHitInfo getHitInfo(RMBezier aBezier)
      Returns a hit info for this bezier and given bezier.
      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
    • getArcLengthFunction

      public RMMath.RMFunc getArcLengthFunction()
      Returns an RMFunc which calculates the arclength of the curve up to t.
      Overrides:
      getArcLengthFunction in class RMQuadratic
    • toString

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