shape2path
Convert SVG shapes to SVG paths. Check out this demo.
Installation
If you use NPM, npm install shape2path
. Otherwise, download the latest release. AMD, CommonJS, and vanilla environments are supported. In vanilla, a shape2path global is exported:
API
shape2path's methods return configurable functions that can be used to produce the d attribute required to draw an SVG path identical to a corresponding SVG basic shape. Each method corresponds to a basic SVG shape: circle, ellipse, line, polygon, polyline, and rect.
# shape2path.circle() · Source, Example
Creates a new circle generator whose cx, cy, and r attributes are set to 0.
# shape2path.ellipse() · Source, Example
Creates a new ellipse generator whose cx, cy, rx, and ry attributes are set to 0.
# shape2path.line() · Source, Example
Creates a new line generator whose x1, y1, x2, and y2 attributes default to 0.
# shape2path.polygon() · Source, Example
Creates a new polygon generator whose points attribute defaults to "0,0".
# shape2path.polyline() · Source, Example
Creates a new polyline generator whose points attribute defaults to "0,0".
# shape2path.rect() · Source, Example
Creates a new rect generator whose x, y, width, height, rx, and ry attributes default to 0.
# shape([datum])
Returns a string representing the path's d attribute, whose appearance will be identical to an SVG basic shape corresponding to the generator's attributes. If datum is specified, applies the generator's functional accessors on the specified datum.
# shape.attr(name[, value])
If value is specified, sets the attribute name to the specified value and returns the generator. For instance, to set a circle generator's cx attribute to 10:
shape2path ;
If the value is constant, sets the position to that constant. Constants must be specified as numbers unless you are setting a points attribute, in which case you can set the constant to a string (e.g. "0,0 1,1"
) or an array of points (e.g. [[0,0], [1,1]]
).
If value is a function, the function is evaluated for the passed datum, and the function's return value is used to set the attributes value. For instance, to set a circle generator's cx attribute to a datum's "left" attribute:
shape2path left: 10;
If value is not specified, returns the current value of the attribute. For all attributes other than points, the value defaults to 0; for points, it defaults to "0,0".