Per-node interpolated line width

Bug #172158 reported by Three-san
12
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Inkscape
Confirmed
Wishlist
Unassigned

Bug Description

The ability to specify the width of a line at each node. The line's width
would be interpolated between the nodes. The range of widths should include
zero.

It may be desirable to have quadratic or cubic (or some other option?)
beyond simple linear interpolation.

This scheme could be applied to colors, as well. In simple cases it may be
preferable to rendering the lines, transferring over to another app, and
colorizing.

If rasterizing such lines would be noticeably slower, the existing curve
rendering algorithm may be used between nodes with identical settings.
Additionally, an option to toggle the viewing of interpolated line widths
could be provided.

Tags: node-editing
Revision history for this message
Three-san (three-san) wrote :

Originator: YES

Node settings (width,color,etc) could default to "unspecified", preserving
present behavior as well as allowing a beginning and an end node to
determine the interpolation of widths across a range of nodes. At least two
approaches to this. The less visually desirable but simpler scheme,
weighting an intermediate node's effective width based on its index (for
want of a better term). E.g. four nodes, {A,B,C,D}, with widths specified
at A,D and unspecified at B,C. B = 2/3*A +1/3*B. The more visually
appealing but (perhaps?) more complicated scheme, weighting based upon
distance traveled along the arc.

Revision history for this message
Three-san (three-san) wrote :

Originator: YES

A note on rounded path end caps (cf square and butt caps). If the current
round cap is thought of as a semicircle, with variable line width the
partial circle may end up being more or less than half of a circle, so that
a continuous first derivative of the edge may be achieved.

Ryan Lerch (ryanlerch)
Changed in inkscape:
importance: Undecided → Wishlist
status: New → Confirmed
Revision history for this message
Shaved Wookie (shavedwookie) wrote :

Pleaseohpleaseohpleaseohplease......

To me this is a *critical feature*. I totally assumed this would have been in Inkscape many versions ago, and well before many of the nifty tools we now have (eg 3D blocks). If you look at the wish lists and bug reports this feature features many, many times, even if the wording is often very different. Users are invariably told to just use the caligraphy tool, which removes almost all of the ease of editing the path later. A curve I drew in an experiment used 6 nodes. To trace over that same curve with the caligraphy tool used 73 *over 12 times the number of nodes*. I'm sure that adding interpolation between each node of a path would slow path rendering down somewhat, 20% maybe, 100%? I'm sure it wouldn't slow it down 12 times though (%1200).

Thanks though Inkscape team. Your work is massively appreciated and ripples out, improving the look of the whole open source world (I'm using it on Secret Maryo Chronicles the GPL side scrolling platform game).

Cheers
Shaved Wookie

Revision history for this message
MenTaLguY (mental-deactivatedaccount) wrote :

SVG doesn't support variable-width strokes at this time, so aside from the calligraphy tool, the best (only?) way to accomplish this would be a live path effect.

Revision history for this message
MenTaLguY (mental-deactivatedaccount) wrote :

(The lack of SVG support is the reason it hasn't already been implemented; LPEs are new and more work might need to get done on that infrastructure before we can hook it directly to a drawing tool.)

Revision history for this message
Shaved Wookie (shavedwookie) wrote :

This exact feature has just been added to Synfig Studio and called "Advanced Outline". You can see a description at:
http://synfig.org/cms/en/news/releases/synfig-studio-0-63-00/

and an image at:
http://download.tuxfamily.org/synfig/cms/5213/0674/3506/advanced-outline.png

jazzynico (jazzynico)
tags: removed: objects-nodes
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.