Well, it looks like I will not be able to attend the GIMP Developers
Conference at the end of this week (too bad - I really wanted to be
there), so here is an idea that could be discussed: there could be an
option to rotate a brush automatically according to the local tangent
of the path that the brush is following.  To make it even nicer, the
user should be able to specify what is "local": how many pixels should
be taken into account for calculating the angle.

This would be very useful with pixmap brushes/hoses/whatever you call
them: if your brush is an arrow and you select Edit->Stroke on a
circle, then the arrows would follow the circle without having to
specify multiple cells with different angles in the brush itself (of
course it should still be possible to use the existing "orientation"
parameter in the brushes that have it).  Another example would be an
animated brush containing several frames of a person walking, and you
want to draw this along a curved path.  I actually tried to create a
brush like that, including 15 frames in 8 possible orientations, but 8
is not precise enough and the 120 cells already take more than 1 Mb.
Being able to rotate the brush dynamically would be a way to trade CPU
cycles for memory (besides the fact that it would provide more precise
rotations than 45 degrees steps).

Another crazy thing that I tried to do (when I saw some people asking
if there was a way to draw text along a path) was to create a script
that would let you enter a text string, then dynamically generate a
brush that would contain all the letters as individual cells.  Then
you could draw freely with this brush and see the letters appearing
along the path.  Unfortunately, it does not really work because all
letters are facing straight up (unless I include several versions of
the letters in the brush, but that takes way too much memory).  Being
able to rotate the brush dynamically would solve the problem.  This
would be an ugly hack for putting text on a path, but that could help
some users until the text tool is re-written.


P.S.: If I have the time, I will also write down some of my ideas about
      how "active layers" could work.  The user would be able to
      associate some PDB calls with a layer so that it would be possible
      to have a "shadow effect" layer that is updated when the "object"
      layer is modified.  Or a "blur" layer that blurs the layers below.

Reply via email to