diff options
| author | Johan B. C. Engelen <jbc.engelen@swissonline.ch> | 2014-10-19 17:22:28 +0000 |
|---|---|---|
| committer | Johan B. C. Engelen <j.b.c.engelen@alumnus.utwente.nl> | 2014-10-19 17:22:28 +0000 |
| commit | 6d0d26db12a8103388a0fe796bd8696836b40c25 (patch) | |
| tree | 9453cc7eff6975383f04580b0f16ee60a5fbf002 /src/widgets/stroke-style.cpp | |
| parent | Typo. Fixing typos in translatable strings. (diff) | |
| download | inkscape-6d0d26db12a8103388a0fe796bd8696836b40c25.tar.gz inkscape-6d0d26db12a8103388a0fe796bd8696836b40c25.zip | |
Fix LPE Powerstroke unintuitive / unstable / scale-dependent behavior
(visible for example with Catmul-Rom interpolation)
The instability happens when the width-value of adjacent control knots are the same.
It's technical, but here goes quickly. Knots are treated as [offset along path, width] points.
The offset along path is the segment number + the location along that segment.
The width is (may not be true, but for ease of discussion) in canvas coordinates.
This means that the interpolation is performed in a *very* compressed coordinate system,
where the x-coords may range from, say, 0 to 5, and the y-coords from 0 to 2000.
This is also scale dependent; changing the scale of your path and scaling all widths accordingly will change the look of your path.
The fix now does the interpolation in a scaled coordinate system. It stretches the x-coordinates to the arclength of the path.
After interpolation, the inverse scaling is applied to the interpolation result.
(bzr r13627)
Diffstat (limited to 'src/widgets/stroke-style.cpp')
0 files changed, 0 insertions, 0 deletions
