Class RMQuadratic
java.lang.Object
com.inductiveautomation.rm.graphics.RMLine
com.inductiveautomation.rm.graphics.RMQuadratic
- All Implemented Interfaces:
Cloneable
- Direct Known Subclasses:
RMBezier
This class models a simple quadratic curve, providing methods for extracting points, distance calculation, bisection,
hit detection and such.
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionCreates a new quadratic curve.RMQuadratic
(double x1, double y1, double x2, double y2, double x3, double y3) Creates a new quadratic curve for this gvein start point, control point and end point.RMQuadratic
(RMPoint startPoint, RMPoint controlPoint, RMPoint endPoint) Creates a new quadratic curve for this gvein start point, control point and end point. -
Method Summary
Modifier and TypeMethodDescriptionfloat
getArcLength
(float start, float end) Returns the arc length of the segment up to parametric value tReturns an RMFunc which calculates the arclength of the curve up to tstatic void
getBounds
(double x0, double y0, double x1, double y1, double x2, double y2, Rectangle2D aRect) Returns the bounds of the bezier.void
getBounds
(Rectangle2D aRect) Returns the bounds.double
getDistance
(RMPoint aPoint) Returns the minimum distance from the given point to this segment.double
getDistanceQuadratic
(RMPoint aPoint) Returns the minimum distance from the given point to the curve.Returns an RMFunc which calculates t for a percentage length along the curve.double
getMaxX()
Returns the max x point of this bezier.double
getMaxY()
Returns the max y point of this bezier.double
getMinX()
Returns the min x point of this bezier.double
getMinY()
Returns the min y point of this bezier.float
getParameterForLength
(float l) Returns parametric point t that corresponds to a given length along the curve.Returns the point on this curve at the parametric location t (defined from 0-1).int
Returns the point count of segment.double
getPointX
(int anIndex) Returns the x of point at given index.double
getPointY
(int anIndex) Returns the y of point at given index.void
setCurve
(double x1, double y1, double x2, double y2, double x3, double y3) Sets the curve values.void
Sets the curve values.void
subdivide
(RMQuadratic left, RMQuadratic right) Subdivides this curve into the given left and right curves.Methods inherited from class com.inductiveautomation.rm.graphics.RMLine
clone, getAngle, getArcLength, getArcLength, getBounds, getDistanceLine, getDistanceLineSquared, getDistanceLineSquared, getHead, getHitInfo, getHitInfo, getHitInfo, getLastX, getLastY, getPoint, getTail, getTangent, setEnd, setStart, toString
-
Field Details
-
_cp1
-
-
Constructor Details
-
RMQuadratic
public RMQuadratic()Creates a new quadratic curve. -
RMQuadratic
Creates a new quadratic curve for this gvein start point, control point and end point. -
RMQuadratic
public RMQuadratic(double x1, double y1, double x2, double y2, double x3, double y3) Creates a new quadratic curve for this gvein start point, control point and end point.
-
-
Method Details
-
setCurve
public void setCurve(double x1, double y1, double x2, double y2, double x3, double y3) Sets the curve values. -
setCurve
Sets the curve values. -
getPoint
Returns the point on this curve at the parametric location t (defined from 0-1). -
getDistance
Returns the minimum distance from the given point to this segment.- Overrides:
getDistance
in classRMLine
-
getDistanceQuadratic
Returns the minimum distance from the given point to the curve. -
getPointCount
public int getPointCount()Returns the point count of segment.- Overrides:
getPointCount
in classRMLine
-
getPointX
public double getPointX(int anIndex) Returns the x of point at given index. -
getPointY
public double getPointY(int anIndex) Returns the y of point at given index. -
subdivide
Subdivides this curve into the given left and right curves. -
getMinX
public double getMinX()Returns the min x point of this bezier. -
getMinY
public double getMinY()Returns the min y point of this bezier. -
getMaxX
public double getMaxX()Returns the max x point of this bezier. -
getMaxY
public double getMaxY()Returns the max y point of this bezier. -
getBounds
Returns the bounds. -
getBounds
public static void getBounds(double x0, double y0, double x1, double y1, double x2, double y2, Rectangle2D aRect) Returns the bounds of the bezier. -
getArcLength
public float getArcLength(float start, float end) Returns the arc length of the segment up to parametric value t- Overrides:
getArcLength
in classRMLine
-
getArcLengthFunction
Returns an RMFunc which calculates the arclength of the curve up to t -
getParameterForLength
public float getParameterForLength(float l) Returns parametric point t that corresponds to a given length along the curve. l is in the range [0-1] (ie. percentage of total arclength)- Overrides:
getParameterForLength
in classRMLine
-
getInverseArcLengthFunction
Returns an RMFunc which calculates t for a percentage length along the curve.
-