Welcome to TalkGraphics.com
Page 5 of 6 FirstFirst ... 3456 LastLast
Results 41 to 50 of 58
  1. #41

    Default Re: Feature Request: New Vector drawing mode "Spiro"

    I understand John, you just don't see what the fuss is about, that's fine.

    From my own point of view, as an illustrator who creates a great deal of line-work, there is a significant difference between spiro curves and standard bezier curves (I often bore people with conversations about lines LOL!). Of course not all illustrators would be interested in this either, but I'm guessing some designers would, especially type and logo designers.

    I see, not only spiro, but the whole idea of live path effects as very exciting, then I would wouldn't I? As live effects these need not be 'bloatware', but merely more options 'under the hood', like all the other live effects.

  2. #42

    Default Re: Feature Request: New Vector drawing mode "Spiro"

    It would clearly be one of those 'vector' improvements that many are wishing for over the other (introduced) features.
    Bloat? Not likely.

  3. #43
    Join Date
    Aug 2004
    Location
    Ukraine
    Posts
    3,904

    Default Re: Feature Request: New Vector drawing mode "Spiro"

    Some thoughts about this. All are based on what is implemented in the beta builds of the Inkscape. I had not looked at the algorithm.

    First, for everyone who don't see why is it so superior to the bezier. A simple test: draw a perfect circle with bezier (shape editor tool). Not easy eh? Worse - it's actually impossible to represent a perfect circle with any set of bezier segments, no matter what. The one we get converting circle created with quick shape or ellipse tool to the editable shapes is just a very good approximation, but it is not a perfect circle mathematically. But this is not a point actually - try to do the same with a Spiro spline and you'll see the difference. Simply, you set any 3 points and you have a perfect circle. I guess this is a bit better argument than debating about the outlook of someone's "S" shape.

    Ok. So is it that great? Well, it is not. At least form the point of implementation. Not that it is much slower to render than bezier, this is obvious, but there is a much worse problem.
    We are all well used to matrix transformations on the plane. In Xtreme these are controlled by positioning (moving object), stretching by any dimension, scaling, skewing and rotating. These all transformations are represented as a matrix of coefficients which multiplied with any point coordinates transform them to the new coordinates as we supposed them to see. Simply, every point of the source image has to be transformed this way to get a new image.
    (Most of you probably know this very well, but I try to explain so that everyone can understand the idea.)
    But applying such a transformation to every point of the image is very slow, as you can see from the raster image transformations. One good thing about bezier segments is that we can transform it's four control points and render the new segment. The result will be the same as if we transformed every point in the segment. This way all vector software works. And here comes a problem with a "Spiro" splines. This rule is not true for them. Transforming their control points will not render an equally transformed object.

    To illustrate this let's look at our simple test with a circle. As we have put three points we have circle. Good. Now, let's say we need an ellipse. What shall we do? We could simply stretch it in one direction, right? But no matter how you move those points, you'll always get a perfect circle only of different size and position. There's no way to get ellipse easily by stretching it.

    This is a bit of show stopper for implementing this kind of line in the typical vector drawing engine. It would require completely different approach on transformations as these has to be implemented on the level of the Spiro algorithm, if at all possible.

    No wonder that Inkscape had not learned yet to transform such shapes correctly.
    John.

  4. #44
    Join Date
    Aug 2007
    Location
    Maghull UK
    Posts
    6,202

    Default Re: Feature Request: New Vector drawing mode "Spiro"

    Quote Originally Posted by covoxer View Post
    ...Most of you probably know this very well, but I try to explain so that everyone can understand the idea...
    Thanks for the explanation John, much appreciated
    JOHN -XaReg (FB) XaReg (DB - ignore prompt to register)
    Windows 10 [Anniversary] pro Intel Pentium CPU G630 @ 2.70Ghz RAM: 4 GB; 64-bit x64

  5. #45
    Join Date
    May 2006
    Location
    Dallas, TX
    Posts
    1,127

    Default Re: Feature Request: New Vector drawing mode "Spiro"

    Quote Originally Posted by covoxer View Post
    ...To illustrate this let's look at our simple test with a circle. As we have put three points we have circle. Good. Now, let's say we need an ellipse. What shall we do? We could simply stretch it in one direction, right? But no matter how you move those points, you'll always get a perfect circle only of different size and position. There's no way to get ellipse easily by stretching it.

    This is a bit of show stopper for implementing this kind of line in the typical vector drawing engine...
    Hmmm. And you can't figure out ways around this? I thought that you considered Xtreme to be a non-typical vector drawing engine?

    For instance, could you not make it so that if the user wanted to make an ellipse out of a Spiro circle, they had to first convert it to a bezier curve, in order to get bezier characteristics? Make the best trade-off you can find.

    But put in a mesh tool before or concurrently with this addition, as I'm not upgrading again until that baby's in place (or the brushes are fixed).

    If I was in your shoes, I'd be in a pig's heaven! So many challenges to attack--how the heck can they be done? I like challenges.

  6. #46
    Join Date
    May 2003
    Location
    Box Elder, SD, USA
    Posts
    4,034

    Default Re: Feature Request: New Vector drawing mode "Spiro"

    Thanks John. Now I see the difference. I don't use inkscape and just couldn't understand all the hoorah over this.
    John Rayner
    For my Photography see:
    http://www.draginet.com
    Facebook

  7. #47
    Join Date
    Aug 2001
    Location
    Savannah GA
    Posts
    243

    Default Re: Feature Request: New Vector drawing mode "Spiro"

    I just played around with this feature some and I can certainly see the use of it. covoxer's concerns are correct however in that as it is a 'live effect' and not an actual defined line the scaling produces unpredictable results. Now I wouldn't have a problem with spiros just being yet another type of quickshape in xara. Ones that did perform differently if I then had the option of 'converting to editable shape' like we do with squares and the like....

    A nice midpoint between spiros and beziers would be if xara had b splines. B splines are very good at making nice smooth lines but still giving you the control that a standard bezier does. I've always enjoyed having b splines as an option but there are very few drawing packages that feature them. I'd love to see them as an option in Xara.

    J

  8. #48
    Join Date
    Jun 2004
    Location
    North Tawton, UK
    Posts
    1,152

    Default Re: Feature Request: New Vector drawing mode "Spiro"

    Hi John,

    I think (correct me if I'm wrong) that only transforms with squash and skew elements in them would show non-affine behaviour on paths with C4 continuity and all other types of transform would behave as expected.

    And, thinking about it, perhaps it wouldn't matter that a path with C4 continuity in it would transform non-affinely in those cases. The behaviour would be fairly natural and if the user has deliberately put one or more C4 points into a curve then he has effectively told the program to behave that way.

    Or if that's not acceptable, the C4 points could be converted to beziers (that's what libSpiro does) as soon as any transform is applied that would give non-affine results.

    Phil

  9. #49
    Join Date
    Aug 2004
    Location
    Ukraine
    Posts
    3,904

    Default Re: Feature Request: New Vector drawing mode "Spiro"

    I think (correct me if I'm wrong) that only transforms with squash and skew elements in them would show non-affine behaviour on paths with C4 continuity and all other types of transform would behave as expected.
    Yes.
    And, thinking about it, perhaps it wouldn't matter that a path with C4 continuity in it would transform non-affinely in those cases. The behaviour would be fairly natural
    I don't think it's natural to see the shape changing violently and generally unprdictable when you try to stretch it. Is it natural the way it works in the current build of Inkscape?
    if the user has deliberately put one or more C4 points into a curve then he has effectively told the program to behave that way.
    I don't think that any kind of shape can be treated as some sort of exception for the transformations. What if it is a part of a group representing some complex drawing? Some parts would transform as expected, others not.
    Or if that's not acceptable, the C4 points could be converted to beziers (that's what libSpiro does) as soon as any transform is applied that would give non-affine results.
    Well, it doesn't sound like a good idea to make such a conversion permanent and automatic. So it's better to make it on the rendering stage dynamically.
    It is also probably simpler to implement this as a separate class.
    John.

  10. #50
    Join Date
    Aug 2000
    Location
    Louvain-la-Neuve, BELGIUM
    Posts
    2,397

    Default Re: Feature Request: New Vector drawing mode "Spiro"

    Quote Originally Posted by covoxer View Post
    Yes.
    I don't think it's natural to see the shape changing violently and generally unprdictable when you try to stretch it. Is it natural the way it works in the current build of Inkscape?
    I don't think that any kind of shape can be treated as some sort of exception for the transformations. What if it is a part of a group representing some complex drawing? Some parts would transform as expected, others not.
    Well, it doesn't sound like a good idea to make such a conversion permanent and automatic. So it's better to make it on the rendering stage dynamically.
    It is also probably simpler to implement this as a separate class.
    Of course I am not a developper and don't completely understand these technical points ! But I appreciate your interest for this very interesting feature.

    kindly,
    ivan

 

 

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •