GraphicsBuilder - Shapes - Xpath

Draws an arbitrary geometric path. Paths are described by a series of pathOperations. Xpath is different to path because it uses the Batik library for rendering and adds a new operation: xarcTo

Operation Description
xmoveTo[x,y] adds a point to the path by moving to the specified coordinates (x,y)
xlineTo[x,y] adds a point to the path by drawing a straight line from the current coordinates to the new specified coordinates (x,y)
xcurveTo[x1,y1,x2,y2,x3,y3] adds a curved segment, defined by three new points, to the path by drawing a Bézier curve that intersects both the current coordinates and the specified coordinates (x3,y3), using the specified points (x1,y1) and (x2,y2) as Bézier control points
xquadTo[x1,y1,x2,y2] adds a curved segment, defined by two new points, to the path by drawing a Quadratic curve that intersects both the current coordinates and the specified coordinates (x2,y2), using the specified point (x1,y1) as a quadratic parametric control point
xhline[x] adds a point to the path by drawing an horizontal line to the specified coordinates (x,current.y)
xvline[y] adds a point to the path by drawing a vertical line to the specified coordinates (current.x,y)
xshapeTo[shape,connect] appends the geometry of the specified Shape, shape operation or outline operation to the path, possibly connecting the new geometry to the existing path segments with a line segment
xclose closes the current subpath by drawing a straight line back to the coordinates of the last moveTo
xarcTo[x,y,rx,ry,angle,sweep,largeArc] adds an elliptical arc, defined by two radii (rx,ry), an angle from the x-axis, a flag to choose the large arc or not, a flag to indicate if we increase or decrease the angles and the final point of the arc (x,y)

The first operation must be a moveTo.

Example

xpath( borderColor: 'darkRed', fill: 'red', borderWidth: 4 ){
   xmoveTo( x: 50, y: 10 )
   xhline( x: 200 )
   xvline( y: 60 )
   xarcTo( x: 50, y: 60, rx: 150, ry: 150, angle: 90, sweep: true, largeArc: false )
}

Labels

 
(None)