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`

.

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 ) } |