Commit Graph

134 Commits (9e218b2b3bb05e047efaadd5e50431a7b212c169)

Author SHA1 Message Date
Andy Port 9e218b2b3b
minor wording change 2018-11-02 16:19:39 -07:00
Andy Port 74a881a181
Added paths2Drawing 2018-10-18 21:28:34 -07:00
Andy Port a86be9d306
added paths2Drawing functionality 2018-10-18 21:27:04 -07:00
Andy Port ee8eda5aae now `dimensions` parameter supports units will specify `viewbox` if not given 2018-10-13 22:22:52 -07:00
Andy Port aa03a4aecb now parameter supports units will specify if not given 2018-10-13 21:40:35 -07:00
Andy Port 95179a6bfa fixed issue with parameter being ignored 2018-10-13 20:36:01 -07:00
Andy Port 7fa103e533 Fixed issue with viewbox being written as tuple 2018-10-13 19:50:33 -07:00
Andy f77f94db5b added SciPy to Travis CI environment 2018-08-22 20:21:09 -07:00
Andy Port 165372562e
Revert "Arc line intersect, take 2 (#60)" (#63)
This reverts commit 2da39e4c02.
2018-08-22 00:27:55 -07:00
Sebastian Kuzminsky 2da39e4c02 Arc line intersect, take 2 (#60)
* add Line.point_to_t() and tests

* add Arc.point_to_t() and tests

* add a bunch of failing arc/line intersection tests

This commit contains a bunch of failing arc/line intersections that I
and other people have run into.

All these tests are fixed in the following commit.

* better implementation of Arc.intersect(Line)

Fixes mathandy/svgpathtools#35.

This commit fixes all the arc/line intersection test cases added in the
previous commit.

This implementation provides special handling in Arc.intersect() when
`self` is a non-rotated Arc and `other_seg` is a Line.  In this case
it uses the straight-forward closed-form solution to identify the
intersection points.

Rotated Arcs and Arcs intersecting with non-Line objects still use
the pre-existing intersection code, that part is totally untouched by
this commit.
2018-08-22 00:19:05 -07:00
Andy Port 4bc146fd62 save() now requires filename 2018-08-21 21:27:29 -07:00
Andy Port 0955278f73 aesthetic cleanup 2018-08-21 21:10:27 -07:00
Andy Port 7ebc56a831 aesthetic cleanup 2018-08-21 20:54:02 -07:00
Andy Port b1dfc9e8f7 removed future dependency 2018-08-21 20:09:29 -07:00
Andy Port ee5ab1813b updated for python3 compatibility 2018-08-21 20:07:53 -07:00
Andy Port 40a515ee63 removed all np.matrix uses (deprecation) 2018-08-21 20:05:59 -07:00
Andy Port 3d1a225503 removed future dependencies 2018-08-21 19:39:25 -07:00
Michael X. Grey 360d6b224c Flattening SVG groups and handling transforms (#55)
* Some progress (and added CONTRIBUTING.md)

* fixed documentation line-width to be PEP 8 compliant

* fixed documentation line-width to be PEP 8 compliant

* style changes

* made some design changes

* Make the Document class available when importing the library

* Add a method to parse transform strings

* Iterate on the implementation of the Document class

* Tweaks to transform parsing implementation

* Implementing a depth-first flattening of groups

* Finish implementation of flatten_paths

* Beginning to write tests for groups

* Refactoring flatten_paths() into flatten_all_paths()

* Clean up implementation of document classes

* Debugging xml namespace behavior -- needs improvement

* Improve the way the svg namespace is handled

* Print out some paths to see that they're sane

* Fix multiplication of numpy matrices -- need to use .dot() instead of operator*

* Create a unit test for parsing SVG groups

* Return a reference to an element instead of a copied dictionary of attributes

* Add a test for <path> elements that contain a 'transform' attribute

* minor docstring improvements

* got rid of svg2path changes (reverted to master)

* updated to match master

* Remove accidental paranthesis

* Remove unnecessary import

* Use a default width and height of 0, as dictated by SVG specs, in case width or height is missing

* Expose the CONVERSIONS and CONVERT_ONLY_PATHS constants

* Fix the use of some numpy operations

* Remove untested functions

* Fix add_group() and write tests for adding groups and paths

* Update documentation of document module

* Add tests for parsing transforms

* Update the module name for svg_to_paths

* Improve Python3 compatibility

* Try to improve compatibility

* More tweaks for compatibility
2018-08-21 18:00:29 -07:00
Andy ccc9ee6ae1 added clipping to work around floating point error in Arc._parameterize() 2018-07-24 15:07:02 -07:00
Andy b47345da91 added clipping to work around floating point error in Arc._parameterize() 2018-07-24 14:57:54 -07:00
Andy be946b8d92 removed 2018-07-24 14:35:39 -07:00
Andy 2b1670460e removed build & eggs-info from git repo 2018-07-24 14:34:28 -07:00
Andy 7fc7e45113 fixed false error raised when scipy not installed 2018-07-09 21:40:00 -04:00
Andy 8d5023939e updated for new PyPI release 2018-07-06 23:04:23 -04:00
Andy fb916596e2 fixed scale 2018-07-06 23:00:25 -04:00
Andy fd521748fa fixed scaled (before cleanup) 2018-07-06 22:59:28 -04:00
Andy 2cb56c50c5 added .travis.yml 2018-06-10 14:57:24 -07:00
Andy 31a8d2ac11 rgb2hex now allows lists as input 2018-06-10 14:41:27 -07:00
Andy 850055fa57 fixed bez2poly function 2018-06-10 14:38:08 -07:00
Andy a2ea4a0e80 fixed path curvature 2018-06-10 14:33:17 -07:00
Andy fd95b5609f partially fixed scale fcn and improved tests 2018-06-08 22:13:18 -07:00
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 304c0bbe1d
improved `scale` related tests 2018-05-30 19:30:24 -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
Andy Port 6da601f8a7
Merge pull request #56 from DmitryMilk/polyline-adjust-to-specification
Polyline/polygon parsing adjusted to specification
2018-05-28 18:50:12 -07:00
Dmitry_Milk 321e097a4e polygon/polyline parsing tests added 2018-05-27 12:34:12 +03: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
Andy Port eafe3682b9
altered so lines aren't (much) over 79 characters
Note: this is mostly unrelated to changes requested by @playi
2018-05-22 19:34:56 -07:00
Andy Port 6394415108
minor aesthetic change 2018-05-22 19:22:09 -07:00
Orion Elenzil 1ba9d45b35 unit test for new scale() and scaled() path transformation. tests all current segment types, composite paths, etc 2018-05-22 15:48:45 -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 29a49197a7
Merge pull request #42 from SebKuzminsky/line-line-intersect
Fix Line.intersect(Line) (bug #41)
2018-02-27 22:38:33 -08: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