Bug 201069 - Ability to draw and edit curves with variable width
Summary: Ability to draw and edit curves with variable width
Status: REPORTED
Alias: None
Product: calligracommon
Classification: Applications
Component: path-shapes (show other bugs)
Version: unspecified
Platform: Ubuntu Unspecified
: NOR wishlist
Target Milestone: ---
Assignee: Calligra Bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-07-22 08:26 UTC by Kubuntiac
Modified: 2021-03-09 08:14 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments
Mockup of variable width paths, alongside current path and calligraphy tools. (153.62 KB, image/png)
2011-02-08 19:21 UTC, Kubuntiac
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Kubuntiac 2009-07-22 08:26:41 UTC
Version:            (using KDE 4.2.96)
Installed from:    Ubuntu Packages

I'm aware this may be no small ask, but here goes:

One of the most fundamental basics of drawing is varying the width of your lines to show shape, form and perspective. Lines that are the exact same width everywhere are almost non existent. Almost every line tapers at either end, and often gets thicker and thinner in different places as needed. For purely technical reasons though, every vector program I've used (Illustrator, Inkscape, Karbon etc) make curves all one hard width.

See this example image I created:
http://secretmaryo.deviantart.com/art/Psycho-Bean-120739844
(click to see it big and with proper transparency)
If you look at the body outline, you can see the variable width. It looks great, but was a **** to create and tweak. I didn't have time to do that on the arms. Notice how they look artificial and ugly with a single line width.

Another good example that shows how variable width lines are used (when the tools allow):
http://xaomi.deviantart.com/art/Yoko-Lineart-129792408
(click to see it big)


It would make creating quality artwork *radically* easier if line widths could be set per node / point rather than having to convert *every* line to a shape and manually tweak a very large number of nodes. Once paths are turned into shapes, it is also very difficult to go back and edit the underlying, original curve.

I propose a tool that, much like the path tool, would allow drawing curves, but where each node could have its width set so that the line width changed smoothly from point to point.

As an artist, not a coder, my (uneducated) idea for *how* this -and other non SVG spec shapes - could be done goes like this:

1. SVG doesn't have a specification for line width, but, as I understand it, as an XML format can include other "tags" which are ignored if not unnderstood by the program opening it. Inkscape uses this, making the difference between "Save Inkscape SVG" and "Save SVG".

2. If the Variable Width Curve tool used these tags, these curves could still be saved inside an SVG.

3. Each time a VW Curve was created, rather than rendering it onscreen, Karbon could create a standard filled shape based on the VW Curve.

4. When selecting a shape with an edit tool, Karbon would check to see if a VW Curve (or other non SVG spec shape) was responsible for creating that shape. If so, the shapes editing (and subsequent re-rendering) would be based on the VW Curve instead.

The nice thing about this is that because there is a real, SVG spec based shape in the file, that even other SVG friendly programs could still import and edit the file and see the shape (created from the VW Curve). This would also make editing the curve as easy as editing any other path, unlike if the curve was just forgotten and used only once to render a shape (like with Inkscape's calligraphy tool, although Karbon seems to do this differently).



I understand this is a larger feature request than usual. This is just something that I would honestly be used by most artists more frequently than the path tool if it existed as it looks better and mirrors how we all learnt to draw.
Comment 1 T Zachmann 2010-04-24 07:29:53 UTC
There is already the calligraphy tool which allows a bit like that to do. Maybe it is helpful for you already.
Comment 2 Kubuntiac 2010-04-28 05:54:42 UTC
Hi T Zachman.

I'm very familiar with both Inkscape and Karbon's caligraphy tool. I am talking about being able to manually change the line width at each node while still being able to edit the curve. Neither Inkscape or Karbon's caligraphy tools let you do anything vaguely similar to that.

In Karbon you can edit the curve, but line width remains the same along the whole path. Inkscape throws out the curve altogether, making a shape which can only be edited by manually by moving huge numbers of nodes manually to try and recreate it by hand.

I'm talking about a curve, whose displayed line you can set the width for at any point along it.
Comment 3 Kubuntiac 2011-02-08 19:21:13 UTC
Created attachment 56995 [details]
Mockup of variable width paths, alongside current path and calligraphy tools.

Here. I've uploaded an image that demonstrates the difference between the path tool, the calligraphy tool and the desired modify path tool.
Comment 4 Kubuntiac 2011-02-08 19:30:58 UTC
Hope that helps! :)
Comment 5 Justin Zobel 2021-03-09 01:22:48 UTC
Thank you for the bug report.

As this report hasn't seen any changes in 5 years or more, we ask if you can please confirm that the issue still persists.

If this bug is no longer persisting or relevant please change the status to resolved.