NEW: on-canvas gradient editing
Now in CVS:
Gradient editing on canvas is now available, much more convenient and powerful than the old way of dragging gradient knots in the Fill&Stroke dialog.
o Any number of selected objects can simultaneously display handles and direction lines for their linear and radial gradients (in the objects' fills or strokes). You can drag these handles directly in the drawing, to interactively adjust gradient positions.
o Gradient handles can be enabled in the Node tool, shape tools, Text tool, and Dropper tool (on by default), as well as in Selector and Zoom tools (off by default). Use the Inkscape Preferences dialog to change this.
o Any gradient handle, if dragged close to a handle of another gradient, will merge with that handle (drag with Shift to prevent merging). Dragging such a merged handle will adjust any number of gradients attached to it. To separate merged handles, drag them away one by one with Shift.
o Radial gradients display handles in the center and at the ends of two radii, which allows you to move, rotate, squeeze, or stretch the gradient to form an arbitrary ellipse. Also, you can independently adjust the focus of the gradient; drag the central handle with Shift to separate the focus handle.
o When dragged, handles will snap to the edges and the central axes of the bounding boxes of all selected objects (drag with Shift to prevent snapping).
o Dragging with Ctrl will snap the angle of the linear or radial gradient to the user-settable angle increments (default is 15 degrees). The center of a radial gradient, dragged with Ctrl, will be constrained to horizontal and vertical movement relative to its previous position. When dragged with Ctrl+Alt, a handle moves along the gradient direction or its perpendiculars, allowing you e.g. to stretch or squeeze a linear gradient without disturbing its angle.
Overall, this is a major usability milestone, something I dreamed to do since Sodipodi times. Gradients are one of the most widely used features in Inkscape, and now they are finally made usable (well, almost - see below).
The old gradient position widget in Fill&stroke remains for now (and still works), but I plan to remove it as soon as the new on-canvas editing is sufficiently tested. I would welcome any feedback on the new feature.
Next in my plans: A Gradient tool, which will allow you to actually create new gradients by dragging (at the moment you still need to open Fill&stroke to switch an object to gradient) as well as adjust most gradient settings in its controls bar at the top of the window. In that tool, the selected gradient handle will be moveable by arrow keys (with all the usual modifiers), and setting any color via Fill&stroke, palette, dropper, or Paste style will be applied to the selected handle's gradient stop (instead of the entire selected object).
Le Samedi 19 Février 2005 01:57, bulia byak a écrit :
Now in CVS:
Gradient editing on canvas is now available, much more convenient and powerful than the old way of dragging gradient knots in the Fill&Stroke dialog.
Wonderful! Lot of thanks.
I'll try it as soon as I can.
Hope these clear explanations will find their way in the tutorials with examples given...
Didier_the_newbie
Le Samedi 19 Février 2005 06:49, Didier Spaier a écrit :
Le Samedi 19 Février 2005 01:57, bulia byak a écrit :
Now in CVS:
Gradient editing on canvas is now available, much more convenient and powerful than the old way of dragging gradient knots in the Fill&Stroke dialog.
Wonderful! Lot of thanks.
I'll try it as soon as I can.
I got a nigthly build through autopackage.
Now gradient editing is by far easier to use for me.
Thank's a lot, bulya :-)
Didier
Hi bulia,
that sounds very nice, but I have problems to compile CVS.
Tobias
-------------------------------------------------------------------
make all-recursive make[1]: Entering directory `/home/tobias/cvs/inkscape' Making all in src make[2]: Entering directory `/home/tobias/cvs/inkscape/src' if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include/freetype2 -I/usr/include/freetype2 -I/usr/X11R6/include -DPOTRACE="potrace" -DXTHREADS -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/X11R6/include -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libxml2 -I/usr/include/sigc ++-2.0 -I/usr/lib/sigc++-2.0/include -I/usr/include/gtkmm-2.4 -I/usr/lib/gtkmm-2.4/include -I/usr/include/glibmm-2.4 -I/usr/lib/glibmm-2.4/include -I/usr/include/gdkmm-2.4 -I/usr/lib/gdkmm-2.4/include -I/usr/include/pangomm-1.4 -I/usr/include/atkmm-1.6 -Wall -W -Wpointer-arith -Wcast-align -Wsign-compare -Woverloaded-virtual -Wswitch -Wno-unused-parameter -g -O2 -MT gradient-chemistry.o -MD -MP -MF ".deps/gradient-chemistry.Tpo" \ -c -o gradient-chemistry.o `test -f 'gradient-chemistry.cpp' || echo './'`gradient-chemistry.cpp; \ then mv -f ".deps/gradient-chemistry.Tpo" ".deps/gradient-chemistry.Po"; \ else rm -f ".deps/gradient-chemistry.Tpo"; exit 1; \ fi gradient-chemistry.cpp: In function `void sp_gradient_set_coords(SPGradient*, unsigned int, NR::Point, bool, NR::Matrix)': gradient-chemistry.cpp:487: error: parse error before `*' token gradient-chemistry.cpp:494: error: no match for 'operator*' in ' NR::operator*(const NR::Matrix&, const NR::Matrix&)((&i2d)) * move' libnr/nr-matrix-ops.h:51: error: candidates are: NR::Matrix NR::operator*(const NR::Matrix&, const NRMatrix&) libnr/nr-matrix-ops.h:48: error: NR::Matrix NR::operator*(const NR::Matrix&, const NR::Matrix&) libnr/nr-matrix-ops.h:26: error: NR::Point NR::operator*(const NR::Point&, const NR::Matrix&) libnr/nr-point-ops.h:45: error: NR::Point NR::operator*(double, const NR::Point&) gradient-chemistry.cpp:484: warning: unused variable `double move_angle' gradient-chemistry.cpp:485: warning: unused variable `double move_stretch' gradient-chemistry.cpp:506: error: parse error before `*' token gradient-chemistry.cpp:513: error: no match for 'operator*' in ' NR::operator*(const NR::Matrix&, const NR::Matrix&)((&i2d)) * move' libnr/nr-matrix-ops.h:51: error: candidates are: NR::Matrix NR::operator*(const NR::Matrix&, const NRMatrix&) libnr/nr-matrix-ops.h:48: error: NR::Matrix NR::operator*(const NR::Matrix&, const NR::Matrix&) libnr/nr-matrix-ops.h:26: error: NR::Point NR::operator*(const NR::Point&, const NR::Matrix&) libnr/nr-point-ops.h:45: error: NR::Point NR::operator*(double, const NR::Point&) gradient-chemistry.cpp:503: warning: unused variable `double move_angle' gradient-chemistry.cpp:504: warning: unused variable `double move_stretch' make[2]: *** [gradient-chemistry.o] Error 1 make[2]: Leaving directory `/home/tobias/cvs/inkscape/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/tobias/cvs/inkscape' make: *** [all] Error 2
Hi Bulia, One think that isn't addressed in the interface at the moment is creating a gradient across a large number of objects (eg. when you have a lot of lines where you want to fade the stroke to transparency).
Currently it works well to tweak the gradient in the old floating window since it applies the gradient on the whole selection rather than merging the gradient handles one by one on the canvas.
One possible interface on canvas would be in the yet-to-be-created gradient tool where a drag outside the handles would (re)define the gradient for the whole selection.
cheers
On Mon, 21 Feb 2005 13:47:24 +0100, Jakub Steiner <jimmac@...446...> wrote:
Currently it works well to tweak the gradient in the old floating window since it applies the gradient on the whole selection rather than merging the gradient handles one by one on the canvas.
IMHO much more convenient is to snap together the vectors of several objects on canvas (of course unless there are too many of them) and then adjust the common snapped vector. It will remain snapped even if you deselect and then reselect the objects.
One possible interface on canvas would be in the yet-to-be-created gradient tool where a drag outside the handles would (re)define the gradient for the whole selection.
Of course, that was the plan.
From MAILER-DAEMON Tue Feb 22 16:32:31 2005
Message-ID: <D421bcfd50001@...500...> From: icskmarshal@...499... To: inkscape-user@lists.sourceforge.net CC: Date: Wed, 23 Feb 2005 08:35:33 +0800 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="--=8e360c2b-9a08-4fa2-ac45-f121c2559c99" X-Spam-Score: 1.2 (+) X-Spam-Report: Spam Filtering performed by sourceforge.net. See http://spamassassin.org/tag/ for more details. Report problems to http://sf.net/tracker/?func=add&group_id=1&atid=200001 0.2 NO_REAL_NAME From: does not include a real name 1.0 FORGED_RCVD_HELO Received: contains a forged HELO 0.0 SF_CHICKENPOX_PERIOD BODY: Text interparsed with . 0.0 SF_CHICKENPOX_MINUS BODY: Text interparsed with - 0.0 SF_CHICKENPOX_AT BODY: Text interparsed with @ Subject: [Inkscape-user] Your email message was blocked Sender: inkscape-user-admin@lists.sourceforge.net Errors-To: inkscape-user-admin@lists.sourceforge.net X-BeenThere: inkscape-user@lists.sourceforge.net X-Mailman-Version: 2.0.9-sf.net Precedence: bulk Reply-To: inkscape-user@lists.sourceforge.net List-Unsubscribe: https://lists.sourceforge.net/lists/listinfo/inkscape-user, mailto:inkscape-user-request@lists.sourceforge.net?subject=unsubscribe List-Id: Inkscape User Community <inkscape-user.lists.sourceforge.net> List-Post: mailto:inkscape-user@lists.sourceforge.net List-Help: mailto:inkscape-user-request@lists.sourceforge.net?subject=help List-Subscribe: https://lists.sourceforge.net/lists/listinfo/inkscape-user, mailto:inkscape-user-request@lists.sourceforge.net?subject=subscribe List-Archive: http://sourceforge.net/mailarchive/forum.php?forum=inkscape-user
----=8e360c2b-9a08-4fa2-ac45-f121c2559c99 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit
MailMarshal (an automated content monitoring gateway) has not delivered the following message:
Message: B421bcfce0001.000000000001.0001.mml From: inkscape-user@lists.sourceforge.net To: hiongjt@...499... Subject: Mail Delivery (failure hiongjt@...499...)
This is due to automatic rules that have determined that the intended recipient is not authorized to receive messages with certain potentially dangerous filetypes attached.
If you believe the message was business related please contact icskmarshal@...499... and request that the message be released to its intended recipient. If no contact is made within 5 days the message will automatically be deleted.
MailMarshal Rule: Content Security (Inbound) : Block Dangerous Attachments
Email Content Security provided by NetIQ MailMarshal.
----=8e360c2b-9a08-4fa2-ac45-f121c2559c99--
participants (4)
-
bulia byak
-
Didier Spaier
-
Jakub Steiner
-
Tobias Jakobs