PowerStroke

From Inkscape Wiki
Jump to navigation Jump to search

Power stroke

The proposed power stroke LPE is as follow:

Power-stroke-1.png

Functionality

This LPE allows a modulated stroke from manually entered values.

Further development could allow direct width reading from a pressure-enabled device.

Workflow

The user simply creates the line, it might for example be based on an outline.

Then the user applies the LPE to his shape, it overrides the normal stroke rendering and allows custom line width at different nodes of the path.

Only the stroke-width property of the path is overridden, the rest of the stroke properties keep working as usual, when relevant.

GUI

Se image above. User selects a nodes or a set of nodes and affects values to those. When a node is selected, you can see what its value is by the change in values in the number entry or by the state of the push button.

Additionally, hovering over a node could show the value of a node. Graphical feedback could even possibly set different icons for nodes that are set and others that are interpolated.

Perhaps Alt+drag a node to change the thickness?

A combination of a metakey and the scroll wheel would be intuitive as well (with status bar message stating you can do that, of course). -- jegHegy

Comments

By JohanE

This is very well doable, but would require a new "Nodepath" implementation that enables writing special values (preferably a struct) per node. There is already something like this, the "nodetypes" attribute, but it is too restrictive. Expanding this would enable this effect, and opens up many other possibilities. Nice idea !

By Pajarico

I'm thinking this tool could allow the user to copy a path or an object or group of objects to any node in a path. Which is similar to what you're proposing, only this doesn't use interpolation between adjacent nodes, it just places an element on a specific node (or nodes if you have several selected).

I'm not sure if it is better to open a separate blueprint or not. --Pajarico, Pajarico 22:36, 21 June 2008 (UTC)

By rubikcube

You might want to have a look at how synfig handles varying width for paths. Paths are called "Blines" there, the relevant feature is explained shortly at the bottom of one of its manual pages. --Rubikcube 17:26, 3 September 2008 (UTC)

By Klesus

In concept I've been thinking of this for a long time, so I'm hopeful that this possibly could be expanded to allow control of other things than stroke width like say, stroke color, opacity and perhaps even blur(!) although I doubt blur is something that would be impossible to implement. Just my 2 cents.

Discussion at LGM 2010

We had a nice discussion about Power Stroke at LGM2010. Here follows some of the 'results' of the discussion and sketches...

An interesting sketch by Ivan Louette: Powerstroke2.svg I have several questions about this drawing: shouldn't the edge of the stroked path always pass through the stroke width control nodes? The inverted one for example, shouldn't the stroke be 'inverted' and have the width a-b? (so the zero width stroke should happen on the left and right of the control knot?)

I propose the following: Powerstroke3.svg with implementation: Powerstroke3 impl.svg