Hi!
I've been researching a bit on how do other applications do the variable
width strokes.
Conclusions are:
-Inkscape does support variable width stroke with Caligraphic Tool only.
This doesn't allow easy later width modification [1].
-SVG doesn't have full variable width strokes but it can be emulated. [2]
-Adobe Ilustrator have variable width stroke with [3] & [4]:
a) Separted width for each side of the curve.
b) Interpolation is some sort of spline interpolation based on splines. I
don't know how do they control the interpolation between width points or
even if they can.
c) Points can be slided along the path.
d) The strokes wdiths can be saved and reused.

(there are other applications that supports (vector) variable width
strokes?)

Looking to the features of Ilustrator I think that the independent width for
each side can be implemented in our development. More over, independent
width for each side can be implemented inmediately just adding another width
and a split width additional parameter.

Have two widths ducks in the same widthpoints (as we know the width ducks
today) may be a little confusing. The user cannot quickly recognize which is
the width duck for each side, because the width duck (circle line and the
dot at the right of the circle) doesn't feedback to the user from which side
is each duck. I propose to create a new kind of duck (already used in bones)
that is a duck that represents a distance from a point along a line. When
handled, it can only be slided parallel to the line. In this case that line
is perpendicular to the tangent on the curve.

Since I've learned to handle ducks with restrictions, I think this is
doable.

Regarding to the implementation of dual width on each widthpoint: I think
that there is not problem to implement it later (after release the advanced
outline). It is due to if someone loads the file of a old advanced outline
format (one single width) it is easily convertible to new format (a non
split dual width) so the render of the outline doesn't change.

Regarding to inteprolation betwen widthpoitns: Current diesign is using a
"superease" in/out interpolation mixed with linear interpolation. This kind
of interpolation does only need two widthpoitns to interpolate. Maybe we can
think on interpolation based on the same interpolation than the waypoints
have. For a TCB interpolation we need at last three widthpoints because two
width points are not enough to define the TCB interpolation. This can be
modified later but I'm afraid it would need deprecate the smoothness and
introduce other parameters to control the interpolation type.
Also, looking to how do they handle the strokes, I think that they creates
paths paralell to the original bezier path to be filled later as a single
region. I don't know how to achieve this but I was thinking on it to remove
some render artifacts that appears when variable width is so high and it is
so close in the bline.

Regarding to reusage of strokes we can easily use the link feature to make
similar strokes with different blines!!! \o/

What do you think? ^__^'

Carlos

[1] http://owl3d.com/svg/vsw/articles/vsw_article.html
[2]
http://www.google.es/url?sa=t&source=web&cd=2&ved=0CCMQFjAB&url=https%3A%2F%2Fbugs.launchpad.net%2Fbugs%2F189724&ei=ixKLTZfaC4exhAeMstDVCw&usg=AFQjCNEnvaIjr2EZ3VzLBizpx-vJaCVuHQ&sig2=SlK3Tt0SgxfG6rNbi60I5w
[3]
http://tv.adobe.com/watch/learn-illustrator-cs5/using-variablewidth-strokes/
[4 ]
http://help.adobe.com/en_US/illustrator/cs/using/WS312669bb7eae9a3436af0b5f1248af9687d-7fff.html
------------------------------------------------------------------------------
Enable your software for Intel(R) Active Management Technology to meet the
growing manageability and security demands of your customers. Businesses
are taking advantage of Intel(R) vPro (TM) technology - will your software 
be a part of the solution? Download the Intel(R) Manageability Checker 
today! http://p.sf.net/sfu/intel-dev2devmar
_______________________________________________
Synfig-devl mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/synfig-devl

Reply via email to