Hi Alexander and all.
I just sent you as reviewer of the offset LPE I just resubmit. I want it soon merged for try to remove SP-Offset on 0.93. Finaly I can get similar performace, than SPLivarot offset, + allow another line joins on expand offset than the previous rounded only.
I use your 2geom-pathstroke code. We can rollback it to previous one before merge, or, if the Extrapolated Cases are covered, i could commit it, and when 2Geom get it and sync with inkscape we can remove this files from helper folder.
Also another question. There is a LPE called Interpolate Paths that maybe can be improved with your code en embrodery.
Cheers, Jabier.
On Tue, 2016-11-22 at 10:41 +0100, Jabier Arraiza wrote:
Hi Alexander,
I could help you if you want. By the way, can you tell me abot similar overlaping on Powerstroke, Bend, and Pattern Along Path. If they can be improved in similar way there is a important advance step.
I start using your code in my offset branch now to start trying.
Cheers, Jabier.
On Tue, 2016-11-22 at 04:06 -0500, Martin Owens wrote:
Hi Alexander,
We've not moved to github yet, so if you need to do a merge request, you'll either have to make a bzr branch or get the help of another developer (hopefully on the mailing list) to do the merge for you.
Best Regards, Martin Owens
On Tue, 2016-11-22 at 01:30 +0100, Alexander Brock wrote:
On 11/21/2016 05:53 PM, Jabier Arraiza wrote:
Is cool you improve it! Im working in a offset LPE currently and hope can use this new code soon.
I improved it further the new code is in the *_stable-functions here: https://github.com/abrock/lib2geom/blob/master/src/toys/geom-path st ro ke.cpp
The old method for offset_cubic:
- move the control points
- checked if the error at t=.5 was below some threshold
- a) if yes return
- b) otherwise subdivide path and repeat (up to some recursion
depth limit).
The new method:
- move the control points
- Find the point on the curve where the distance differs the
most from the desired distance 3. Adjust control point (only lengthes, preserve direction and smoothness) to minimize this maximum error 4. checked if the error at t=.5 was below some threshold 4. a) if yes return 4. b) otherwise subdivide path and repeat (up to some recursion depth limit).
This method seems to prevent degradation where the number of nodes increases exponentially due to numerical instability. Attached are examples of the old and new method used to repeatedly offset an initial red curve. The old code produces 4625 segments in the last step, the new code 3.
Should I prepare a merge request? I'd like to run some tests, any suggestions which kind? I think the most important thing is to test for a wide variety of paths if the created offset path has constant distance from the original path.
Best Regards, Alexander
Inkscape-devel mailing list Inkscape-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-devel
Inkscape-devel mailing list Inkscape-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-devel