Yes, top-posting is the devil... sorry.
First off, I'm resurrecting this thread as I have updated information/observations from trying most of the big commercial apps to compare various functions, here's what I noticed with freehand drawing.
In all of the commercial apps, they lay down placeholders of the lines you draw with freehand tools while you are drawing them. In CorelDRAW & Freehand it is just a raster line it plots and then replaces it with the vector line on mouseup. Illustrator does that for one type of drawing tool, the other uses a dotted line (like a vector line with stroke set to a decently spaced dotted pattern). And in Xara it appears that it lays down a vector line that is not antialiased, as well as it is a bit more rugged than the finished line (you see more straight segments while plotting, but they smooth out when it commits the line).
What I'm getting at is that we should probably look at doing something similar with our freehand drawing & calligraphy tools to keep them more responsive while drawing. The pencil tool in Inkscape is significantly less responsive than our commercial counterparts (especially if you try long strokes... the longer the line, the less responsive we are). In fact, the commercial apps all stay just as responsive from start to finish regardless of line length, so that's definitely a reason to look into it. I think it mainly has to do with us trying to lay down the end result while it's being drawn. Is there any way we can achieve the rough/low quality placeholder lines just while drawing to keep those tools responsive?
In my testing, the commercial apps are all a lot more accurate than we are (we don't compare too well at this point), with Illustrator being the most accurate by quite a bit. So, even if you say that people should just draw shorter lines to keep it responsive... it also seems like we could theoretically improve accuracy as well, as it would help give us extra time to calculate the appropriate type and location of nodes as well as more accurate curves.
These were just my thoughts/observations on the subject since I'm doing comparisons of various features of the big apps with ours.
I'm not thinking that any work would be done on this for a while, but I just wanted to see what others think.
-Josh
So after watching all of the conversation on this topic, today I
decided
to bust open Illustrator (v. 10) to see how it handled the freehand tools (pencil & brush, the equivalent of our freehand & calligraphy tools)... it's pretty interesting and of course extremely accurate. I know in this conversation was comparing Sodi & Inkscape initially, but
I
figured we should also compare to how the "big guy" does it too (even though there's no access to source code to find out how they _really_
do
it).
For the pencil it lays down a dotted line as a placeholder and the
brush
lays down a crude raster line as a placeholder (reflecting brush size, etc), and both then replace that placeholder with the real vector line when you are done drawing (on mouse button release).
I have to say it appears that there are two (perceived) benefits for handling drawing like that:
- Illustrator remains responsive regardless of length of line or
speed
of stroke, whereas with Inkscape the longer the line gets (or if you
go
turbo speed), the less responsive the app/tool is. I love the Calligraphy tool, but it gets painful to work with if you try to write fast or for long.
- It gives the program additional time to calculate results that are
more accurate (since it's not quite working in "real-time" w/ actual vectors).
As I said, those are perceived benefits and may not necessarily be accurate as to how those tools in Illustrator really function (specifically relating to perceived benefit #2). Either way, my guess
is
that Adobe does it for a good reason.
I just figured that it might be good to see how the closed source apps do it to figure out what else may be done to improve our tools. So
maybe
a placeholder of sorts, so that there is additional time to more accurately lay down a vector as well as keep inkscape responsive?