Commit Graph

150 Commits (e94483510ec3ff63f4e941657109ee32844c038d)

Author SHA1 Message Date
mdejean f932036fb5 After Z, next subpath starts at same position (#53)
* After Z, next subpath starts at same position

Fixes #52

* removed old comment to mirror new behavior
2018-06-02 00:49:49 -07:00
Andy Port 18b1337877 renamed svg2paths module to allow imports 2018-06-02 00:32:16 -07:00
Andy Port 55661d18a4
Merge pull request #54 from playi/scale
add scale() for curves, and scaled() for paths
2018-05-30 21:20:22 -07:00
Andy Port 72d7467896
implemented (almost) full SVG scale transform functionality 2018-05-30 19:07:58 -07:00
Orion Elenzil ee656c7de0 refactor `scale()` and `scaled()` to `scale_uniform()` and `scaled_uniform()` 2018-05-30 10:54:56 -07:00
Andy Port 6fcc71d63b minor docstring improvements 2018-05-28 19:46:38 -07:00
Dmitry_Milk 2dcfa88cf2 Adjust polyline/polygon parsing to W3C specification
https://www.w3.org/TR/SVG11/shapes.html#PointsBNF
2018-05-27 11:47:44 +03:00
Andy Port 0827206953
style changes 2018-05-22 19:59:03 -07:00
Orion Elenzil d21a66aff0 add scale() for curves, and scaled() for paths 2018-05-22 12:45:04 -07:00
Andy Port 71b4403375
fix typo `joins_smoothl_with` 2018-04-13 14:34:28 -07:00
Andy Port a50c522f86
use np.close to check to check for vanishing denom
Just to offer users some amount of control over the tolerance.
2018-02-27 22:38:01 -08:00
Sebastian Kuzminsky 89d9acf06e Line.intersect(Line): fix a "miss some intersections" bug
Negative numbers are allowed in the denominator, what we really want to
avoid is near-zero denominators.
2018-01-20 20:46:54 -07:00
Sebastian Kuzminsky fc34d2c4cf deal with float rounding error in Line.intersect(Line)
This commit fixes #41.

In the test case added in the previous commit, two non-intersecting lines
are very nearly collinear, but float rounding errors lead to incorrect
intersections reported.

This commit makes Line.intersect() treat denominators below 1e-9 as 0,
to make it more accepting of float rounding.
2018-01-06 23:15:43 -07:00
Anders Granskogen Bjørnstad ec63d0c312 Arc: Handle round-off issue with acos()
math.acos raises outside of valid range [-1, 1]. Handle round-off errors
gracefully by using `round()` here too.
2017-11-10 13:44:24 +01:00
Andy 586bccd0f2 now svgwrite debug is false by default 2017-07-18 20:01:37 -07:00
Andy 38eeac858c fixed support for rectangles when no x,y attributes are specified
defaults to 0,0
2017-04-26 02:21:01 -07:00
Andy d670547149 added polygon() and polyline() to __init__ 2017-04-26 02:20:11 -07:00
Andy a094f92b3a added polyline and polygon functions (points --> Path of Line objects) 2017-04-26 01:54:44 -07:00
Andy a3a529899c added rect element support to svg2paths 2017-04-26 01:53:34 -07:00
Andy 1d1bec1877 add ellipse/circle option to svg2paths2 and change return_svg_attributes to be second argument. 2017-04-23 01:14:59 -07:00
Andy aa02116e87 prettify svg2paths docstring (Google style) 2017-04-23 01:12:12 -07:00
Andy 900d5ba93b fixed typo and long line in docstrings 2017-04-23 00:45:41 -07:00
Andy Port 9a1b1ff1e5 Merge pull request #21 from jpcofr/ellipse_d_squashed
Added functionality to extract circle and ellipse elements from SVG files.  Circles and ellipses are treated as paths of two `Arc` objects.
2017-04-23 00:33:06 -07:00
Juan Pablo Contreras Franco 216965e6ab Corrected wrongly deleted docstring line 2017-04-23 07:50:43 +02:00
Juan Pablo Contreras 2a24cf640d Added functionality to process both circles and ellipses.
Added tests related to the functionality.
2017-04-07 09:44:04 +02:00
Andy Port d8dfbd01fc changed default (when svg_attributes doesn't have a height/width) to the szx and szy constructed from path bounding boxes
@DerVedro was there a reason you thought the default should be 100% (beyond that being the current behavior -- which I see as a bug)?
2017-04-06 16:05:28 -07:00
derVedro 88185419f5 fliped width and height
the x and y were swaped by my mistake
2017-03-31 00:26:02 +02:00
derVedro f72987d69b fixed ignored height and width arguments
issue #17 fix
2017-03-31 00:17:59 +02:00
Andy 385dbb7196 cleanup
removed commented-out “pathless_svg” functionality
2017-03-30 01:57:23 -07:00
Andy 60d67923b6 fix issue#15 Path.cropped() bug, and more
-also fixed <path>.cropped(1, 0) bug (now raises AssertionError)
-also now Path.cropped() raises AssertionError if given negative values
2017-03-30 01:38:27 -07:00
Andy 4ec69a4cff remove empty `pathtools.py` and move tests from `test_pathtools.py` to `test_path.py` 2017-03-24 00:18:22 -07:00
Andy 9423f5fdc3 fixed svg2path parsing of svg-polygon elements with redundant closure points 2017-03-16 01:58:48 -07:00
Andy 1655b77d15 removed builtins imports 2017-02-28 23:34:29 -08:00
Andy 8815ddcd52 futurized for Python 3 compatibility
and some other minor changes of no effect
2017-02-28 23:04:37 -08:00
Andy f697a91190 fixed higher order Bezier to polynomial conversion 2017-02-28 20:41:35 -08:00
Canule 70b03ad233 xrange 2017-02-26 23:42:13 +01:00
Andy d38485d69c minor bezier_intersections() docstring fix 2017-02-20 22:33:35 -08:00
Andy a154796576 changes related to arcs and intersections
-fixed quadratic/Arc intersections
-changed assertion that an arc's radii are positive to non-zero
-improved Arc.intersect() docstring to further explain partial
implementation
2017-02-20 22:10:16 -08:00
Andy a81af16d89 improved Arc docstring and added positive radii assertion to Arc 2017-02-20 20:11:54 -08:00
Andy c219d1e671 improved Arc class docstring 2017-02-20 19:46:16 -08:00
Andy 058b23585f fixed bug (issue #9) where line.intersect(curve) results are reversed 2017-02-20 19:21:07 -08:00
Andy 1622d01d05 add note that `svg_attributes={'debug': False}` increases `disvg`/`wsvg` speed considerably. 2017-02-05 23:18:23 -08:00
Andy 08e8dc71ff improve distribution to PyPI
Now svg files, readme, unit tests, and license included in PyPI dis
2016-10-29 00:35:51 -07:00
remi-pr 3575fec9af Fixed the rotated method of all objects
The rotated method of all objects was not using the origin argument but always self.point(0.5) even though it is all correctly handled in the rotate function they are all calling
2016-10-28 15:11:31 +02:00
Andy 6be04c6750 Fix python 3 incompatibility with Path.intersect() method 2016-10-16 00:20:52 -07:00
derVedro f782b628ff check for necessity of line on closing command 2016-10-09 07:45:42 +02:00
Andy a6719c56c5 fixed __init__.py 2016-07-23 17:15:22 -07:00
Andy 849ad17088 add polyroots01 to __init__.py 2016-07-22 18:44:34 -07:00
Andy 15d186ff33 add ability to preserve svg-attributes
Added svg_attributes attribute to wsvg and disvg.
Added return_svg_attributes option to svg2paths.
Added convenience function svg2paths2().
2016-07-15 22:10:59 -07:00
Andy 9b3d6fe5e3 initial commit 2016-07-05 21:51:11 -07:00