ShopDreamUp AI ArtDreamUp
Deviation Actions
I think most of us have figured it out by now--Inkscape needs a width tool.
I can see people pointing at Power Strokes right now, going, "Are you blind or something?"
No. I hatePower Strokes the current Power Stroke width interpolators--they usually end up doing something like this:
That is a completely excessive amount of nodes for a two point path--In fact, that particular path could be represented with a skeletal path effect and look exactly the same:
Do you see what I'm getting at here? Having fewer nodes decreases calculation time on a path when you are editing it.
Now, I suppose, to the main proposal here.
2 new LPEs (Live Path Effects)
1 new tool - the Width tool - works in conjunction with these two LPEs
Advanced Skeletal Control - works with the Width Tool to craft specific control points on an empty pattern that is as long as the path itself. Can join the pattern at the other end of the path if the path is closed. Node-minimal, Ctrl to snap width, Alt for one side only.
The best part about this - the (somewhat preexisting) ability to control width on one side only. Basically, we'd hope to achieve this:
This is a screenshot from Illustrator, where a width tool is already implemented. But I think we can do Adobe one better here with the second LPE that I mentioned, Advanced Path Control.
This can be built off of the ASC live path effect here. What are we looking for, here, that's any different from ASC?
Skeleton is suspended at corners? Yes. Therefore a new skeleton is needed for each segment between sharp nodes for the implementation to work.
Ability to control join type and width at each corner node. Yes, I know that this has the potential to get abused when creating pony vectors, so what? It's still a massive contribution to this FOSS project.
So imagine that you have this:
Dragging the orange node will now change the width at the corner (A previous issue with Power Strokes). Shift-clicking the node will cause this dialog box to appear (BTW, hovering will cause it to invert colors) :
A different join type can be specified at each and every corner node. Changing the node to smooth will cause it to inherit the width properties, creating a pink width control node and discard the join properties if it were ever to be made sharp again.
Finally, this has bothered me and ChainChomp2 for a little bit now--the ability to control the width of one segment between two other nodes. Not exactly this:
But something more like this:
I Heart Manehattan Tourist Pony by ChainChomp2
Um... by me
So this is where we can do one better than Illustrator. Let's give the option to use the width tool to create this yellow node here:
(Creating width control points on that segment will delete the yellow node.) You can now drag the yellow node in or out to create this effect of cutting the width at those joins:
This can be implemented without much difficulty really because remember, the skeleton is suspended between joins.
Remember, to increase speed of editing, these path effects should be node-minimal (which actually shouldn't be a problem, because skeletal path effects tend to be good at having low node counts)
Skeletal path effect, is Pattern Along Path path effect btw if anyone didn't know.
I can see people pointing at Power Strokes right now, going, "Are you blind or something?"
No. I hate
That is a completely excessive amount of nodes for a two point path--In fact, that particular path could be represented with a skeletal path effect and look exactly the same:
Do you see what I'm getting at here? Having fewer nodes decreases calculation time on a path when you are editing it.
Now, I suppose, to the main proposal here.
2 new LPEs (Live Path Effects)
- Advanced Skeletal Control (should be developed first)
- Advanced Path Control (after ASC is fully developed and debugged)
1 new tool - the Width tool - works in conjunction with these two LPEs
Advanced Skeletal Control - works with the Width Tool to craft specific control points on an empty pattern that is as long as the path itself. Can join the pattern at the other end of the path if the path is closed. Node-minimal, Ctrl to snap width, Alt for one side only.
The best part about this - the (somewhat preexisting) ability to control width on one side only. Basically, we'd hope to achieve this:
This is a screenshot from Illustrator, where a width tool is already implemented. But I think we can do Adobe one better here with the second LPE that I mentioned, Advanced Path Control.
This can be built off of the ASC live path effect here. What are we looking for, here, that's any different from ASC?
- Skeleton is suspended at corners
- Building off of above, ability to control the join type and width at each corner node
- The ability to control the width of a specific segment between two nodes
Skeleton is suspended at corners? Yes. Therefore a new skeleton is needed for each segment between sharp nodes for the implementation to work.
Ability to control join type and width at each corner node. Yes, I know that this has the potential to get abused when creating pony vectors, so what? It's still a massive contribution to this FOSS project.
So imagine that you have this:
Dragging the orange node will now change the width at the corner (A previous issue with Power Strokes). Shift-clicking the node will cause this dialog box to appear (BTW, hovering will cause it to invert colors) :
A different join type can be specified at each and every corner node. Changing the node to smooth will cause it to inherit the width properties, creating a pink width control node and discard the join properties if it were ever to be made sharp again.
Finally, this has bothered me and ChainChomp2 for a little bit now--the ability to control the width of one segment between two other nodes. Not exactly this:
But something more like this:
I Heart Manehattan Tourist Pony by ChainChomp2
Um... by me
So this is where we can do one better than Illustrator. Let's give the option to use the width tool to create this yellow node here:
(Creating width control points on that segment will delete the yellow node.) You can now drag the yellow node in or out to create this effect of cutting the width at those joins:
This can be implemented without much difficulty really because remember, the skeleton is suspended between joins.
Remember, to increase speed of editing, these path effects should be node-minimal (which actually shouldn't be a problem, because skeletal path effects tend to be good at having low node counts)
Skeletal path effect, is Pattern Along Path path effect btw if anyone didn't know.
Merged
As some of you may have known, instead of manually distributing tarballs over the past few months, I have been updating my feature fork (which uses many Ponyscape experiments and some of mine) into a Launchpad branch.
Not that long ago, that feature branch was merged upstream. Inkscape trunk, which is the current release focus for 0.91, will not have these features, unfortunately – I arrived too late on the development scene. However, Inkscape 0.92 will have these features, and any binary packages made of Inkscape experimental (the current development focus) will have these features as well.
I would now like to give thanks to those th
Mini update
"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit..."
"There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain..."
After messing around with it a bit, I managed to come up with this little bit of CSS that glows like the KDE Oxygen theme. deviantART also kind of annoyed me since I was unable to set a gradient as the background.
This was somewhat inspired by gwennie-chan (https://www.deviantart.com/gwennie-chan)'s tumblr theme, Catching Elephants, but more by me not really having anything else to do. The cursor (if that functionality of the theme works) belongs to the Adwaita cursor
200 Watchers
Uh, okay. Let me first apologize for not being more active during the past few weeks. See, I've been pretty stressed out and all and I've just started doing some serious coding for Inkscape.
Which brings me to....
Inkscape 0.91 custom
I was going to release this later when it was ready, but I figured since I have 200 watchers why not push a test build? :) I haven't exactly been aimlessly coding for the past few weeks, it's coding with a purpose. What I have done is started to merge Ponyscape features into Inkscape development builds (and fix a few bugs, too!). Why would I want to do that? Age. The most recent release of Ponyscape is gettin
Join Types pretty much finished
Build 1.3
I just wanna say, thank you to my primary testers ~dasprid (https://www.deviantart.com/dasprid)dasprid (https://www.deviantart.com/dasprid) and :iconmrbarthalamul:MrBarthalamul (https://www.deviantart.com/mrbarthalamul).
Grab it here for Windows 32bit (43.5MB): http://goo.gl/iA17sd
Get the source code for compiling on other machines (12.7MB): http://goo.gl/7Ci0J3
-LPE converts paths to outlines
-Special "peak" linecap added
-"Force miter" option for when you just have to have a miter
-Negative line widths
-"Reflected" (Extrapolated) and Extrapolated Arc miter type available!
Problems:
-Certain linecaps are broken in "reflected" mode.
-All linecaps except butt are broken in "extrapolated" mode.
-mesh gradients broken for t
© 2014 - 2024 liamwhite1
Comments13
Join the community to add your comment. Already a deviant? Log In
I'm just wondering one thing about your first example. Shouldn't a proper path effect be able to represent that 2-point tapered line with 3 nodes?