public class SVGPath extends Object
Modifier and Type | Field and Description |
---|---|
private StringBuilder |
buf
String buffer for building the path.
|
private String |
lastaction
The last action we did, to not add unnecessary commands
|
static String |
PATH_ARC_RELATIVE
The lower case version (relative) path arc command.
|
static String |
PATH_CUBIC_TO_RELATIVE
The lower case version (relative) cubic line to command.
|
static String |
PATH_HORIZONTAL_LINE_TO_RELATIVE
The lower case version (relative) horizontal line to command.
|
static String |
PATH_LINE_TO_RELATIVE
The lower case version (relative) line to command.
|
static String |
PATH_MOVE_RELATIVE
The lower case version (relative) move command.
|
static String |
PATH_QUAD_TO_RELATIVE
The lower case version (relative) quadratic interpolation to command.
|
static String |
PATH_SMOOTH_CUBIC_TO
The absolute "smooth cubic to" SVG path command (missing from
SVGConstants).
|
static String |
PATH_SMOOTH_CUBIC_TO_RELATIVE
The lower case version (relative) smooth cubic to command.
|
static String |
PATH_SMOOTH_QUAD_TO_RELATIVE
The lower case version (relative) smooth quadratic interpolation to
command.
|
static String |
PATH_VERTICAL_LINE_TO_RELATIVE
The lower case version (relative) vertical line to command.
|
Constructor and Description |
---|
SVGPath()
Empty path constructor.
|
SVGPath(double[] xy)
Constructor with initial point.
|
SVGPath(double x,
double y)
Constructor with initial point.
|
SVGPath(Polygon vectors)
Constructor from a vector collection (e.g. a polygon)
|
Modifier and Type | Method and Description |
---|---|
private void |
append(String action,
double... ds)
Append an action to the current path.
|
SVGPath |
close()
Close the path.
|
SVGPath |
cubicTo(double[] c1xy,
double[] c2xy,
double[] xy)
Cubic Bezier line to the given coordinates.
|
SVGPath |
cubicTo(double c1x,
double c1y,
double c2x,
double c2y,
double x,
double y)
Cubic Bezier line to the given coordinates.
|
SVGPath |
cubicTo(Vector c1xy,
Vector c2xy,
Vector xy)
Cubic Bezier line to the given coordinates.
|
SVGPath |
drawTo(double[] xy)
Draw a line given a series of coordinates.
|
SVGPath |
drawTo(double x,
double y)
Draw a line given a series of coordinates.
|
SVGPath |
drawTo(Vector xy)
Draw a line given a series of coordinates.
|
SVGPath |
ellipticalArc(double rx,
double ry,
double ar,
double la,
double sp,
double[] xy)
Elliptical arc curve to the given coordinates.
|
SVGPath |
ellipticalArc(double rx,
double ry,
double ar,
double la,
double sp,
double x,
double y)
Elliptical arc curve to the given coordinates.
|
SVGPath |
ellipticalArc(Vector rxy,
double ar,
double la,
double sp,
Vector xy)
Elliptical arc curve to the given coordinates.
|
SVGPath |
horizontalLineTo(double x)
Draw a horizontal line to the given x coordinate.
|
boolean |
isStarted()
Test whether the path drawing has already started.
|
SVGPath |
lineTo(double[] xy)
Draw a line to the given coordinates.
|
SVGPath |
lineTo(double x,
double y)
Draw a line to the given coordinates.
|
SVGPath |
lineTo(Vector xy)
Draw a line to the given coordinates.
|
Element |
makeElement(Document document)
Turn the path buffer into an SVG element.
|
Element |
makeElement(SVGPlot plot)
Turn the path buffer into an SVG element.
|
SVGPath |
moveTo(double[] xy)
Move to the given coordinates.
|
SVGPath |
moveTo(double x,
double y)
Move to the given coordinates.
|
SVGPath |
moveTo(Vector xy)
Move to the given coordinates.
|
SVGPath |
quadTo(double[] c1xy,
double[] xy)
Quadratic Bezier line to the given coordinates.
|
SVGPath |
quadTo(double c1x,
double c1y,
double x,
double y)
Quadratic Bezier line to the given coordinates.
|
SVGPath |
quadTo(Vector c1xy,
Vector xy)
Quadratic Bezier line to the given coordinates.
|
SVGPath |
relativeCubicTo(double[] c1xy,
double[] c2xy,
double[] xy)
Cubic Bezier line to the given relative coordinates.
|
SVGPath |
relativeCubicTo(double c1x,
double c1y,
double c2x,
double c2y,
double x,
double y)
Cubic Bezier line to the given relative coordinates.
|
SVGPath |
relativeCubicTo(Vector c1xy,
Vector c2xy,
Vector xy)
Cubic Bezier line to the given relative coordinates.
|
SVGPath |
relativeEllipticalArc(double rx,
double ry,
double ar,
double la,
double sp,
double[] xy)
Elliptical arc curve to the given relative coordinates.
|
SVGPath |
relativeEllipticalArc(double rx,
double ry,
double ar,
double la,
double sp,
double x,
double y)
Elliptical arc curve to the given relative coordinates.
|
SVGPath |
relativeEllipticalArc(Vector rxy,
double ar,
double la,
double sp,
Vector xy)
Elliptical arc curve to the given relative coordinates.
|
SVGPath |
relativeHorizontalLineTo(double x)
Draw a horizontal line to the given relative x coordinate.
|
SVGPath |
relativeLineTo(double[] xy)
Draw a line to the given relative coordinates.
|
SVGPath |
relativeLineTo(double x,
double y)
Draw a line to the given relative coordinates.
|
SVGPath |
relativeLineTo(Vector xy)
Draw a line to the given relative coordinates.
|
SVGPath |
relativeMoveTo(double[] xy)
Move to the given relative coordinates.
|
SVGPath |
relativeMoveTo(double x,
double y)
Move to the given relative coordinates.
|
SVGPath |
relativeMoveTo(Vector xy)
Move to the given relative coordinates.
|
SVGPath |
relativeQuadTo(double[] c1xy,
double[] xy)
Quadratic Bezier line to the given relative coordinates.
|
SVGPath |
relativeQuadTo(double c1x,
double c1y,
double x,
double y)
Quadratic Bezier line to the given relative coordinates.
|
SVGPath |
relativeQuadTo(Vector c1xy,
Vector xy)
Quadratic Bezier line to the given relative coordinates.
|
SVGPath |
relativeSmoothCubicTo(double[] c2xy,
double[] xy)
Smooth Cubic Bezier line to the given relative coordinates.
|
SVGPath |
relativeSmoothCubicTo(double c2x,
double c2y,
double x,
double y)
Smooth Cubic Bezier line to the given relative coordinates.
|
SVGPath |
relativeSmoothCubicTo(Vector c2xy,
Vector xy)
Smooth Cubic Bezier line to the given relative coordinates.
|
SVGPath |
relativeSmoothQuadTo(double[] xy)
Smooth quadratic Bezier line to the given relative coordinates.
|
SVGPath |
relativeSmoothQuadTo(double x,
double y)
Smooth quadratic Bezier line to the given relative coordinates.
|
SVGPath |
relativeSmoothQuadTo(Vector xy)
Smooth quadratic Bezier line to the given relative coordinates.
|
SVGPath |
relativeVerticalLineTo(double y)
Draw a vertical line to the given relative y coordinate.
|
SVGPath |
smoothCubicTo(double[] c2xy,
double[] xy)
Smooth Cubic Bezier line to the given coordinates.
|
SVGPath |
smoothCubicTo(double c2x,
double c2y,
double x,
double y)
Smooth Cubic Bezier line to the given coordinates.
|
SVGPath |
smoothCubicTo(Vector c2xy,
Vector xy)
Smooth Cubic Bezier line to the given coordinates.
|
SVGPath |
smoothQuadTo(double[] xy)
Smooth quadratic Bezier line to the given coordinates.
|
SVGPath |
smoothQuadTo(double x,
double y)
Smooth quadratic Bezier line to the given coordinates.
|
SVGPath |
smoothQuadTo(Vector xy)
Smooth quadratic Bezier line to the given coordinates.
|
String |
toString()
Return the SVG serialization of the path.
|
SVGPath |
verticalLineTo(double y)
Draw a vertical line to the given y coordinate.
|
private StringBuilder buf
private String lastaction
public static final String PATH_SMOOTH_CUBIC_TO
public static final String PATH_LINE_TO_RELATIVE
public static final String PATH_MOVE_RELATIVE
public static final String PATH_HORIZONTAL_LINE_TO_RELATIVE
public static final String PATH_VERTICAL_LINE_TO_RELATIVE
public static final String PATH_CUBIC_TO_RELATIVE
public static final String PATH_SMOOTH_CUBIC_TO_RELATIVE
public static final String PATH_QUAD_TO_RELATIVE
public static final String PATH_SMOOTH_QUAD_TO_RELATIVE
public static final String PATH_ARC_RELATIVE
public SVGPath()
public SVGPath(double x, double y)
x
- initial coordinatesy
- initial coordinatespublic SVGPath(double[] xy)
xy
- initial coordinatespublic SVGPath(Polygon vectors)
vectors
- vectorspublic SVGPath drawTo(double x, double y)
x
- new coordinatesy
- new coordinatespublic SVGPath drawTo(double[] xy)
xy
- new coordinatespublic SVGPath drawTo(Vector xy)
xy
- new coordinatespublic boolean isStarted()
public SVGPath lineTo(double x, double y)
x
- new coordinatesy
- new coordinatespublic SVGPath lineTo(double[] xy)
xy
- new coordinatespublic SVGPath lineTo(Vector xy)
xy
- new coordinatespublic SVGPath relativeLineTo(double x, double y)
x
- relative coordinatesy
- relative coordinatespublic SVGPath relativeLineTo(double[] xy)
xy
- new coordinatespublic SVGPath relativeLineTo(Vector xy)
xy
- new coordinatespublic SVGPath horizontalLineTo(double x)
x
- new coordinatespublic SVGPath relativeHorizontalLineTo(double x)
x
- new coordinatespublic SVGPath verticalLineTo(double y)
y
- new coordinatepublic SVGPath relativeVerticalLineTo(double y)
y
- new coordinatepublic SVGPath moveTo(double x, double y)
x
- new coordinatesy
- new coordinatespublic SVGPath moveTo(double[] xy)
xy
- new coordinatespublic SVGPath moveTo(Vector xy)
xy
- new coordinatespublic SVGPath relativeMoveTo(double x, double y)
x
- new coordinatesy
- new coordinatespublic SVGPath relativeMoveTo(double[] xy)
xy
- new coordinatespublic SVGPath relativeMoveTo(Vector xy)
xy
- new coordinatespublic SVGPath cubicTo(double c1x, double c1y, double c2x, double c2y, double x, double y)
c1x
- first control point xc1y
- first control point yc2x
- second control point xc2y
- second control point yx
- new coordinatesy
- new coordinatespublic SVGPath cubicTo(double[] c1xy, double[] c2xy, double[] xy)
c1xy
- first control pointc2xy
- second control pointxy
- new coordinatespublic SVGPath cubicTo(Vector c1xy, Vector c2xy, Vector xy)
c1xy
- first control pointc2xy
- second control pointxy
- new coordinatespublic SVGPath relativeCubicTo(double c1x, double c1y, double c2x, double c2y, double x, double y)
c1x
- first control point xc1y
- first control point yc2x
- second control point xc2y
- second control point yx
- new coordinatesy
- new coordinatespublic SVGPath relativeCubicTo(double[] c1xy, double[] c2xy, double[] xy)
c1xy
- first control pointc2xy
- second control pointxy
- new coordinatespublic SVGPath relativeCubicTo(Vector c1xy, Vector c2xy, Vector xy)
c1xy
- first control pointc2xy
- second control pointxy
- new coordinatespublic SVGPath smoothCubicTo(double c2x, double c2y, double x, double y)
c2x
- second control point xc2y
- second control point yx
- new coordinatesy
- new coordinatespublic SVGPath smoothCubicTo(double[] c2xy, double[] xy)
c2xy
- second control pointxy
- new coordinatespublic SVGPath smoothCubicTo(Vector c2xy, Vector xy)
c2xy
- second control pointxy
- new coordinatespublic SVGPath relativeSmoothCubicTo(double c2x, double c2y, double x, double y)
c2x
- second control point xc2y
- second control point yx
- new coordinatesy
- new coordinatespublic SVGPath relativeSmoothCubicTo(double[] c2xy, double[] xy)
c2xy
- second control pointxy
- new coordinatespublic SVGPath relativeSmoothCubicTo(Vector c2xy, Vector xy)
c2xy
- second control pointxy
- new coordinatespublic SVGPath quadTo(double c1x, double c1y, double x, double y)
c1x
- first control point xc1y
- first control point yx
- new coordinatesy
- new coordinatespublic SVGPath quadTo(double[] c1xy, double[] xy)
c1xy
- first control pointxy
- new coordinatespublic SVGPath quadTo(Vector c1xy, Vector xy)
c1xy
- first control pointxy
- new coordinatespublic SVGPath relativeQuadTo(double c1x, double c1y, double x, double y)
c1x
- first control point xc1y
- first control point yx
- new coordinatesy
- new coordinatespublic SVGPath relativeQuadTo(double[] c1xy, double[] xy)
c1xy
- first control pointxy
- new coordinatespublic SVGPath relativeQuadTo(Vector c1xy, Vector xy)
c1xy
- first control pointxy
- new coordinatespublic SVGPath smoothQuadTo(double x, double y)
x
- new coordinatesy
- new coordinatespublic SVGPath smoothQuadTo(double[] xy)
xy
- new coordinatespublic SVGPath smoothQuadTo(Vector xy)
xy
- new coordinatespublic SVGPath relativeSmoothQuadTo(double x, double y)
x
- new coordinatesy
- new coordinatespublic SVGPath relativeSmoothQuadTo(double[] xy)
xy
- new coordinatespublic SVGPath relativeSmoothQuadTo(Vector xy)
xy
- new coordinatespublic SVGPath ellipticalArc(double rx, double ry, double ar, double la, double sp, double x, double y)
rx
- x radiusry
- y radiusar
- x-axis-rotationla
- large arc flag, if angle >= 180 degsp
- sweep flag, if arc will be drawn in positive-angle directionx
- new coordinatesy
- new coordinatespublic SVGPath ellipticalArc(double rx, double ry, double ar, double la, double sp, double[] xy)
rx
- x radiusry
- y radiusar
- x-axis-rotationla
- large arc flag, if angle >= 180 degsp
- sweep flag, if arc will be drawn in positive-angle directionxy
- new coordinatespublic SVGPath ellipticalArc(Vector rxy, double ar, double la, double sp, Vector xy)
rxy
- radiusar
- x-axis-rotationla
- large arc flag, if angle >= 180 degsp
- sweep flag, if arc will be drawn in positive-angle directionxy
- new coordinatespublic SVGPath relativeEllipticalArc(double rx, double ry, double ar, double la, double sp, double x, double y)
rx
- x radiusry
- y radiusar
- x-axis-rotationla
- large arc flag, if angle >= 180 degsp
- sweep flag, if arc will be drawn in positive-angle directionx
- new coordinatesy
- new coordinatespublic SVGPath relativeEllipticalArc(double rx, double ry, double ar, double la, double sp, double[] xy)
rx
- x radiusry
- y radiusar
- x-axis-rotationla
- large arc flag, if angle >= 180 degsp
- sweep flag, if arc will be drawn in positive-angle directionxy
- new coordinatespublic SVGPath relativeEllipticalArc(Vector rxy, double ar, double la, double sp, Vector xy)
rxy
- radiusar
- x-axis-rotationla
- large arc flag, if angle >= 180 degsp
- sweep flag, if arc will be drawn in positive-angle directionxy
- new coordinatesprivate void append(String action, double... ds)
action
- Current actionds
- coordinates.public SVGPath close()
public Element makeElement(Document document)
document
- Document context (= element factory)public Element makeElement(SVGPlot plot)
plot
- Plot context (= element factory)