http://www.inkscape.org/screenshots/gallery/inkscape-0.44-nodesculpting.png
An entirely new way of manipulating paths in Node tool is added in this version: Node sculpting. Normally, when you have several nodes selected and you drag one of them, all selected nodes move by the same amount. Now, if you Alt-drag one of the selected nodes, only that node is fully displaced; other selected nodes are moved less than the full amount, so that those farthest from the drag point remain stationary.
So, for example, if you select several nodes on a straight line and Alt+drag the middle selected node, the path will bend into a smooth bell-like curve. Nodes' handles are also adjusted correspondingly to keep the overall shape smooth and natural. (If you don't have enough nodes on a path fragment that you want to reshape in this way, just select the end nodes of that fragment and press Ins a few times to populate it with nodes.)
Moreover, node sculpting is sensitive to pressure of your tablet pen. If you press slightly, your curve will have a narrow sharp tip (i.e. the nearest neighbors of your dragged node will move only a bit); if you press hard, the curve's tip will be wide and blunt (i.e. the nearest neighbors will move almost as much as the dragged node). (Hint: to stop dragging without losing your shape, first release Alt and then lift the tip of the pen.)
There are many possible applications of the sculpting technique. To take a simple example, selecting all nodes of an ellipse-like shape and Alt+dragging one of them will smoothly and naturally stretch and skew the entire shape in any direction. Doing the same to a complex path, such as star or spiral, will twist and punch it without destroying its intricate structure - this is the way to get squashed or self-intersecting stars, eccentric spirals and other shapes not easily doable before. Selecting only part of all nodes allows you to smoothly reshape parts of the figure without disturbing the rest.
Especially useful node sculpting is for complex natural paths, such as calligraphic strokes or bitmap traces, where you often want to do large-scale pushes and bends without destroying the small-scale features. Things like making a calligraphic stroke narrower in one place and wider in another, or extending the ear or flattening the nose of a head, or any other reshaping of complex paths - all this is now much faster and more natural to do using sculpting. Starting from en ellipse with added nodes, it takes just a few Alt+drags to tweak it into a silhouette of a head, or a map of Australia, or an Inkscape logo!
Bulia,
I've said it before and I will say it again... YOU ROCK BEYOND ALL BELIEF! (yes it required shouting and top posting, I am just that happy) THANKS YOU!
Now... Unfortunately I had a hectic weekend and this is my first time back at a computer. That means no further progress on the mask/clippath/pattern tutorial. My question is, should I add info about this to the Advanced tutorial as a higher priority than that other tutorial? I personally think so, but want other opinions.
Anyway, off to grill... and let me say again... THANK YOU!!!!!
-Josh
bulia byak wrote:
http://www.inkscape.org/screenshots/gallery/inkscape-0.44-nodesculpting.png
An entirely new way of manipulating paths in Node tool is added in this version: Node sculpting. Normally, when you have several nodes selected and you drag one of them, all selected nodes move by the same amount. Now, if you Alt-drag one of the selected nodes, only that node is fully displaced; other selected nodes are moved less than the full amount, so that those farthest from the drag point remain stationary.
http://www.inkscape.org/screenshots/gallery/inkscape-0.44-nodesculpting.png
Moreover, node sculpting is sensitive to pressure of your tablet pen.
Anyone got a recommendation for a good tablet under Linux?
thanks, -kt
Please consider our environment before printing this email.
WARNING - This email and any attachments may be confidential. If received in error, please delete and inform us by return email. Because emails and attachments may be interfered with, may contain computer viruses or other defects and may not be successfully replicated on other systems, you must be cautious. Westpac cannot guarantee that what you receive is what we sent. If you have any doubts about the authenticity of an email by Westpac, please contact us immediately.
It is also important to check for viruses and defects before opening or using attachments. Westpac's liability is limited to resupplying any affected attachments.
This email and its attachments are not intended to constitute any form of financial advice or recommendation of, or an offer to buy or offer to sell, any security or other financial product. We recommend that you seek your own independent legal or financial advice before proceeding with any investment decision.
Westpac Institutional Bank is a division of Westpac Banking Corporation, a company registered in New South Wales in Australia under the Corporations Act 2001 (Cth). Westpac is authorised and regulated in the United Kingdom by the Financial Services Authority and is registered at Cardiff in the United Kingdom as Branch No. BR 106. Westpac operates in the United States of America as a federally chartered branch, regulated by the Office of the Comptroller of the Currency.
Westpac Banking Corporation ABN 33 007 457 141.
The new node sculpting is the cat's meow....
And given an inch, I'll take a mile!
It would be nice to be able to specify how the nodes are displaced. The current algorithm appears to be based on displacing a node as a Gaussian (Bell curve) function of the distance along the path from the dragged node. This works nicely in adjusting small sections of a path (or spirals). It is not quite as effective in sculpting text (try sculpting just a few letters). One could imagine other useful algorithms:
1. Displacement as a function of linear distance from dragged node.
2. Displacement as a function of perpendicular distance from a line through the dragged node and parallel to the direction of the drag.
3. Displacement as a function of closest distance along path for closed paths. This would avoid a discontinuity in the displacement between the first and last points of a closed path.
4. Displacement proportional to 1 - x^2/x'^2, where x is the perpendicular distance from the dragged node and x' the perpendicular distance of the end selected nodes. This would allow "wrapping" an object around a can given #2 is implemented. (OK, this is really a parabolic displacement and one should also move points in the perpendicular direction to wrap an object around a can, but this would be a good enough approximation in many cases.)
5. When more than one path or sub-path is selected (as in selecting a few characters or parts of a few characters), use the end nodes of the first and last path as the reference points. Currently the first and last points of the sub-path with the dragged node are used.
6. Choosing the reference points (other than the selected end nodes) where the displacement is zero.
Trying to sculpt text exposes two problems. The first is that the Object->Path function creates two overlapping end points for each closed path. I think that these two points should be merged. The second is that "Add Nodes" creates two extra overlapping nodes at the beginning/end of a close path.
Tav
On 5/16/06, Tavmjong Bah <tavmjong@...206...> wrote:
It would be nice to be able to specify how the nodes are displaced. The current algorithm appears to be based on displacing a node as a Gaussian (Bell curve) function of the distance along the path from the dragged node. This works nicely in adjusting small sections of a path (or spirals). It is not quite as effective in sculpting text (try sculpting just a few letters). One could imagine other useful algorithms:
- Displacement as a function of linear distance from dragged node.
Added yesterday. So far it's a hidden preference that you can enable, we just need to decide where to put the UI for it (controls bar or prefs dialog?)
- Displacement as a function of perpendicular distance from a line
through the dragged node and parallel to the direction of the drag.
Interesting, yes, can be added too.
- Displacement as a function of closest distance along path for closed
paths. This would avoid a discontinuity in the displacement between the first and last points of a closed path.
It already works this way. More precisely, there are two modes of measuring distance: linear and spatial. Linear mode measures distances along the path; it is used when all selected nodes are on the same subpath (i.e. are connected). In that mode there should be no discontinuities ever. Spatial mode measures distance directly along a straight line to the node, and it is used when selection is on more than one subpath. In that mode, unfortunately, there may be discontinuities - though I have an idea of how to minimize them (this needs more research). Apart from the possible discontinuities, the two modes look and feel very similar to the user, so I don't think we need to tell the user anything about them. They should "just work" as you expect them to.
- Displacement proportional to 1 - x^2/x'^2, where x is the
perpendicular distance from the dragged node and x' the perpendicular distance of the end selected nodes. This would allow "wrapping" an object around a can given #2 is implemented. (OK, this is really a parabolic displacement and one should also move points in the perpendicular direction to wrap an object around a can, but this would be a good enough approximation in many cases.)
I'm not sure I understand this, can you draw an illustration?
- When more than one path or sub-path is selected (as in selecting a
few characters or parts of a few characters), use the end nodes of the first and last path as the reference points. Currently the first and last points of the sub-path with the dragged node are used.
Currently the reference point in this case is the _farthest_ selected node no matter where it is, and this is what may cause discontinuities. But, as I said above, I already have an idea of how to fix it: basically, instead of a single farthest (reference) point, we should have one such point in each direction, and for each direction calculate the displacement based on how far the selection reaches in that direction. In a simpler way, this is already done in the linear mode: the two directions from the dragged node on the path each have its own farthest node, so each half of selection is bent smoothly within its own range and there are no discontinuities (except when you drag the first/last node of selection, of course, but then you have only yourself to blame).
- Choosing the reference points (other than the selected end nodes)
where the displacement is zero.
I think the UI for that would be too cumbersome for the user. We just need to make it work automagically in most if not all cases :)
Trying to sculpt text exposes two problems. The first is that the Object->Path function creates two overlapping end points for each closed path. I think that these two points should be merged. The second is that "Add Nodes" creates two extra overlapping nodes at the beginning/end of a close path.
Can you please submit bug reports (with examples) for that?
One more UI improvement:
On a node-dense path in zoom-out, it's very difficult to grab one of selected nodes because all selected nodes show their Bezier handles and these get in the way. So I added a toggle button on the Node tool Controls bar that lets you switch on or off the display of the handles on selected nodes (it's on by default, of course).
You must have changed some things in the last few days. Node sculpting works much better!
- Displacement as a function of linear distance from dragged node.
Added yesterday. So far it's a hidden preference that you can enable, we just need to decide where to put the UI for it (controls bar or prefs dialog?)
Excellent... on the control bar as I could imagine switching back and forth often. Question becomes, what would be a good icon?
- Displacement as a function of perpendicular distance from a line
through the dragged node and parallel to the direction of the drag.
Interesting, yes, can be added too.
Great! I could also see a control bar icon here.
- Displacement as a function of closest distance along path for closed
paths. This would avoid a discontinuity in the displacement between the first and last points of a closed path.
It already works this way. More precisely, there are two modes of measuring distance: linear and spatial. Linear mode measures distances along the path; it is used when all selected nodes are on the same subpath (i.e. are connected). In that mode there should be no discontinuities ever. Spatial mode measures distance directly along a straight line to the node, and it is used when selection is on more than one subpath. In that mode, unfortunately, there may be discontinuities - though I have an idea of how to minimize them (this needs more research). Apart from the possible discontinuities, the two modes look and feel very similar to the user, so I don't think we need to tell the user anything about them. They should "just work" as you expect them to.
I see. I realized that what was actually occurring was a discontinuity due an open sub-path (with the end nodes on top of each other, hiding the opening, due to the bug listed below). The distance along the path from the dragged node to each end was different so the end nodes moved by different amounts. With the latest SVN, things works as you describe above and this problem has disappeared.
- Displacement proportional to 1 - x^2/x'^2, where x is the
perpendicular distance from the dragged node and x' the perpendicular distance of the end selected nodes. This would allow "wrapping" an object around a can given #2 is implemented. (OK, this is really a parabolic displacement and one should also move points in the perpendicular direction to wrap an object around a can, but this would be a good enough approximation in many cases.)
I'm not sure I understand this, can you draw an illustration?
See the attached illustration of attempting to put text on a can. The 'd' is clearly orientated wrong. The lower black line shows the curve obtained with node sculpting. The upper black line shows the curve that would be obtained with the displacement option requested above. It is a better approximation to the displacement needed to simulate an object wrapped around a can.
- Choosing the reference points (other than the selected end nodes)
where the displacement is zero.
I think the UI for that would be too cumbersome for the user. We just need to make it work automagically in most if not all cases :)
You are probably right.
Trying to sculpt text exposes two problems. The first is that the Object->Path function creates two overlapping end points for each closed path. I think that these two points should be merged. The second is that "Add Nodes" creates two extra overlapping nodes at the beginning/end of a close path.
Can you please submit bug reports (with examples) for that?
The first problem appears to occur only when text is converted to a path. I will file bug reports.
Tav
On 5/17/06, Tavmjong Bah <tavmjong@...206...> wrote:
Excellent... on the control bar as I could imagine switching back and forth often. Question becomes, what would be a good icon?
Let's wait a release to see if this becomes a popular enough feature to deserve a space on the toolbar. We'll need at least 5 buttons there, 3 for selecting profile (bell, elliptic and linear) and 2 for selecting the surface drag (current) or shot-through drag (distance from line of drag, not dragged node) behavior.
See the attached illustration of attempting to put text on a can.
I see, this would be the ellpitic profile.
Now, if you Alt-drag one of the selected nodes, only that node is fully displaced; other selected nodes are moved less than the full amount, so that those farthest from the drag point remain stationary.
This is great! I compiled from CVS for the first time just to play with it.
Is anyone using this on Linux? All the windows managers I tried to use (Xgl, Metacity, Fluxbox) have <ALT>+mouse bound to move the window. I was able to disable moving the windows this way for Metacity and play with the feature, but disabling window moving isn't an ideal solution for me.
OT: FWIW, I'm on Ubuntu Dapper (the dev version). It appears that all dependencies will be obtainable from the repositories for Dapper, making it easier for Ubuntu users to build Inkscape from source.
Thanks!
Michael Moore wrote:
Is anyone using this on Linux? All the windows managers I tried to use (Xgl, Metacity, Fluxbox) have <ALT>+mouse bound to move the window. I was able to disable moving the windows this way for Metacity and play with the feature, but disabling window moving isn't an ideal solution for me.
You should be able to reassign the key for moving the window to the Super key (the "windows" key). I also run Dapper and it's how I have it set up.
-Josh
hello michael,
i'm using ubuntu 5.10, but i'll be moving up to dapper when they settle on the final release.
when you say all the required dependecies needed for building inkscape are available in the repositories, is that the stable release or the cvs build?
have you ever tried using the autopackage builds? i didn't have much luck with them.
john michaelson.
On 5/18/06, Michael Moore <stuporglue@...155...> wrote:
Now, if you Alt-drag one of the selected nodes, only that node is fully displaced; other selected nodes are moved less than the full amount, so that those farthest from the drag point remain stationary.
This is great! I compiled from CVS for the first time just to play with it.
Is anyone using this on Linux? All the windows managers I tried to use (Xgl, Metacity, Fluxbox) have <ALT>+mouse bound to move the window. I was able to disable moving the windows this way for Metacity and play with the feature, but disabling window moving isn't an ideal solution for me.
OT: FWIW, I'm on Ubuntu Dapper (the dev version). It appears that all dependencies will be obtainable from the repositories for Dapper, making it easier for Ubuntu users to build Inkscape from source.
Thanks!
Michael Moore
www.stuporglue.org -- Donate your used computer to a student that needs it. www.ubuntu-utah.org -- In Utah? Interested in Ubuntu? Come join us.A
Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmdlnk&kid%120709&bid&3057&d... _______________________________________________ Inkscape-user mailing list Inkscape-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-user
j michaelson wrote:
i'm using ubuntu 5.10, but i'll be moving up to dapper when they settle on the final release.
<snip>
have you ever tried using the autopackage builds? i didn't have much luck with them.
I build and test the autopackages on breezy. What problems have you?
Aaron Spike
hi aaron,
i downloaded inkscape200603102112.package and ran it as root. it told me that my systems version of glibc was too old and i need glibc_2.0 or better. i thought it might be because the inkscape package was too new for my system so i downloaded inkscape-0.43.x86.package but it gave me exactly the same problem.
i'm using a fresh install of the amd64 version of ubuntu 5.10. might it be anything to do with the fact i'm running a 64bit system? i looked for 64bit specific packages but i couldn't see any.
any idea what might be the problem?
thanks. john michaelson.
On 5/19/06, Aaron Spike <aaron@...476...> wrote:
j michaelson wrote:
i'm using ubuntu 5.10, but i'll be moving up to dapper when they settle on the final release.
<snip> > have you ever tried using the autopackage builds? i didn't have much > luck with them.
I build and test the autopackages on breezy. What problems have you?
Aaron Spike
Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&da... _______________________________________________ Inkscape-user mailing list Inkscape-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-user
hi aaron,
so if i do a 32bit install i'll be able to use the packages? i might just do that, it's nice to be running a 64bit system, but i'm not obsessive about it.
any plans for 64bit autopackages in the future?
thanks for your help. john michaelson.
On 5/20/06, Aaron Spike <aaron@...476...> wrote:
j michaelson wrote:
any idea what might be the problem?
Yes the Autopackages are x86 only.
Aaron Spike
Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&da... _______________________________________________ Inkscape-user mailing list Inkscape-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-user
j michaelson wrote:
any plans for 64bit autopackages in the future?
Wow, I really don't know. You should voice your concern to the Autopackage developers. If there are plans they could tell you, and if no plans exist it will at least place the thought in their minds.
Aaron Spike
participants (7)
-
Aaron Spike
-
bulia byak
-
j michaelson
-
Joshua A. Andler
-
Kinsley Turner
-
Michael Moore
-
Tavmjong Bah