Outils pour utilisateurs

Outils du site


issue164:inkscape

This month, we’ll be continuing to look at the changes in Inkscape’s drawing tools that arrived with version 1.0.

Ce mois-ci, nous allons continuer à regarder les changements dans les outils de dessin apparus avec la version 1.0.

Pencil Tool Last time, I covered changes to the Bézier and Calligraphy tools, so let’s start this article with the third of the line-drawing tools, the Pencil or Freehand tool. The release notes mention only one change to this tool (albeit one that comes with controls for several parameters), so I’ll begin with that. In Inkscape 1.0, the tool control bar has gained an additional button in the “Mode” section, outlined in red in this screenshot: Whereas the first three entries in this section act as radio buttons, the new addition acts as a toggle. This seems a little odd to me, because toggling it ‘on’ immediately disables the other three buttons. It’s still only possible to have one option exclusively selected (the hallmark of radio buttons), so I don’t really understand why this wasn’t just included as an extra radio button, rather than implemented as a toggle. What it does mean, though, is that switching to a different mode requires the additional step of turning off this toggle to re-enable the older buttons.

Outil crayon

La dernière fois, j'ai parlé des changements apportés aux outils de Bézier et de calligraphie ; alors commençons cet article par le troisième des outils de dessin au trait, l'outil Crayon ou Main levée. Les notes de version ne mentionnent qu'une modification de cet outil (bien qu'elle soit accompagnée de contrôles pour plusieurs paramètres) ; je vais donc commencer par cela. Dans Inkscape 1.0, la barre de contrôle de l'outil a gagné un bouton supplémentaire dans la section « Mode », souligné en rouge dans cette capture d'écran :

Alors que les trois premières entrées de cette section agissent comme des boutons radio, le nouvel ajout agit comme un bouton basculant. Cela me semble un peu étrange, car le fait de l'activer désactive immédiatement les trois autres boutons. Il n'est toujours possible de sélectionner qu'une seule option (une caractéristique des boutons radio), donc je ne comprends pas vraiment pourquoi cela n'a pas été inclus comme un bouton radio supplémentaire, plutôt que d'être implémenté comme une bascule. Ce que cela signifie, cependant, c'est que le passage à un autre mode nécessite l'étape supplémentaire consistant à désactiver ce bouton pour réactiver les anciens boutons.

Minor UI gripes aside, what does this button actually do? It enables pressure sensitivity for the tool, which is of no practical use to mouse users, but may be beneficial to tablet users. Time to dig out my ‘cheap-but-does-the-job’ Monoprice branded tablet; it’s no Wacom, but it works out-of-the-box on my Ubuntu Mate system and supports pressure sensitivity. With the toggle enabled, the tool control bar changes to look like the image below, providing additional controls labelled “Min”, “Max” and “Caps”: Before describing what those controls do, a brief recap of the way that the Pencil tool works is probably useful. Historically, it was just a tool for freehand drawing that would create simple paths. Starting and ending at the same point would create a closed path, whereas a different ending point would result in an open path. The thickness and style of the resultant path was trivially based on the fill and stroke options, as you might expect.

Mis à part ces petits défauts de l'interface utilisateur, à quoi sert ce bouton ? Il permet une sensibilité à la pression de l'outil, ce qui ne sert à rien pour les utilisateurs de souris, mais peut être bénéfique pour les utilisateurs de tablettes. Il est temps de ressortir ma tablette de marque Monoprice « bon marché mais qui marche » ; ce n'est pas une Wacom, mais elle fonctionne dès le départ sur mon système Ubuntu Mate et prend en charge la sensibilité à la pression.

Lorsque le commutateur est activé, la barre de contrôle des outils change pour ressembler à l'image ci-dessous, fournissant ainsi des contrôles supplémentaires étiquetés « Min », « Max » et « Terminaisons » :

Avant de décrire l'action de ces commandes, il est probablement utile de faire un bref rappel du fonctionnement de l'outil Crayon. Historiquement, il s'agissait simplement d'un outil de dessin à main levée qui permettait de créer des chemins simples. Commencer et terminer au même point créait un chemin fermé, alors qu'un point final différent créait un chemin ouvert. L'épaisseur et le style du chemin résultant étaient trivialement basés sur les options de remplissage et de contour, comme vous pouvez vous y attendre.

More recent releases added a “Shape” pop-up menu. With that set to “None”, the behaviour remained as described above, but by selecting a different option in that menu, the behaviour of the Pencil tool changes dramatically. The shape you draw is no longer the stroke of a path, but rather it is a filled path in its own right. In 1.0, the shape is the result of applying a Live Path Effect onto the skeleton path you’ve drawn. The triangle-in and triangle-out shapes are created using the Power Stroke LPE, whereas the ellipse and clipboard-based shapes are produced using the Pattern Along Path LPE. As you can see, this tool relies heavily on LPEs for its more advanced features. This brings us back to the new pressure-sensitive mode. This is also implemented using the Power Stroke LPE, but whereas triangle-in and -out just have a single control point for setting the thickness of the triangle’s base, in pressure-sensitive mode, Inkscape creates multiple control points along the length of the drawn line – whenever there’s a significant change in pressure. The result is a line that moves from thin to thick and back, based on the pressure you apply, but with the ability to tweak the thickness of each part of the stroke by switching to the Node tool and manipulating the purple control points.

Des versions plus récentes ont ajouté un menu contextuel « Forme ». Avec ce réglage sur « Aucun », le comportement est resté le même que celui décrit ci-dessus, mais en sélectionnant une option différente dans ce menu, le comportement de l'outil Crayon change radicalement. La forme que vous dessinez n'est plus le tracé d'un chemin, mais plutôt un chemin rempli intrinsèque. Dans la version 1.0, la forme est le résultat de l'application d'un « Effet de Chemin Interactif » (ECI - en anglais, LPE) sur le squelette du chemin que vous avez dessiné. Les formes Triangle décroissant et Triangle croissant sont créées à l'aide de l'ECI Contour dynamique, tandis que les formes Ellipse et Depuis le presse-papier sont produites à l'aide de l'ECI Motif suivant le chemin. Comme vous pouvez le voir, cet outil s'appuie fortement sur les ECI pour ses fonctions plus avancées.

Cela nous ramène au nouveau mode sensible à la pression. Il est également mis en œuvre à l'aide de l'ECI Contour dynamique, mais alors que les triangles croissants et décroissants ne possèdent qu'un seul point de contrôle pour régler l'épaisseur de la base du triangle, en mode sensible à la pression, Inkscape crée plusieurs points de contrôle sur la longueur de la ligne dessinée - chaque fois qu'il y a un changement significatif de la pression. Le résultat est une ligne qui passe de fine à épaisse et vice-versa, en fonction de la pression que vous appliquez, mais avec la possibilité de modifier l'épaisseur de chaque partie de la ligne en passant à l'outil Nœud et en manipulant les points de contrôle violets.

You can see the effect in the image below. The top line was created with the shape control set to “None”: it’s a simple path with nodes at the ends, but no way to adjust the stroke thickness along its length. The second line used “Triangle-out”, and you can see that there’s a single purple handle at the left that is used to adjust the stroke thickness set by the Power Stroke LPE. The third line was the result of some random pressure adjustments using a graphics tablet: this one has even more handles for adjusting the skeleton path, plus additional purple LPE handles at each pressure change. This makes it easy to compensate for poor pressure control by adjusting the line thickness after drawing. Knowing that this mode enables the Power Stroke LPE makes it easier to understand what the various controls on the tool control bar do. Min and Max set the minimum and maximum values for the purple control points. The Caps control sets the shape of the end caps, and mirrors the corresponding control within the LPE itself. For my tablet, setting a Min of 0 and a Max of 20, with round end caps and a small amount of smoothing (around 10 on this scale), gives a nice “marker-pen” effect that responds quite nicely to the pressure I tend to apply to the stylus. Potentially, this can provide a much more naturalistic feel to cartoons and sketches – though it still requires a more artistic hand than my own to produce something impressive.

Vous pouvez en voir l'effet dans l'image ci-dessous. La ligne du haut a été créée avec le contrôle de forme réglé sur « Aucun » : c'est un simple chemin avec des nœuds aux extrémités, mais sans la possibilité d'ajuster l'épaisseur du trait sur sa longueur. La deuxième ligne a utilisé « Triangle croissant » et vous pouvez voir qu'il y a une seule poignée violette à gauche qui est utilisée pour ajuster l'épaisseur du contour définie par l'ECI Contour dynamique. La troisième ligne est le résultat de quelques ajustements aléatoires de la pression à l'aide d'une tablette graphique : celle-ci comporte encore plus de poignées pour ajuster la trajectoire du squelette, plus des poignées violettes supplémentaires du LPE à chaque changement de pression. Il est ainsi facile de compenser un mauvais contrôle de la pression en ajustant l'épaisseur de la ligne après le tracé.

Sachant que ce mode active l'ECI Contour dynamique, il est plus facile de comprendre ce que font les différentes commandes de la barre de contrôle des outils. Min et Max définissent les valeurs minimales et maximales des points de contrôle violets. Le contrôle Terminaisons définit la forme des bouts et reflète le contrôle correspondant dans l'ECI lui-même.

Pour ma tablette, le réglage d'un Min à 0 et d'un Max à 20, avec des embouts ronds et un peu de lissage (environ 10 sur cette échelle), donne un bel effet de « stylo marqueur » qui répond assez bien à la pression que j'ai tendance à appliquer sur le stylet. Cela peut potentiellement donner une impression beaucoup plus naturelle aux dessins animés et aux croquis, même s'il faut encore une main plus artistique que la mienne pour produire quelque chose d'impressionnant.

Eraser Tool I make no secret of the fact that the Eraser is one of my least favourite tools in Inkscape. Not because it has any inherent problems or limitations, but because it’s deceptively familiar for users coming from bitmap editors. Too many words have been expended on forum threads in which new Inkscape users bring their bitmap preconceptions to the vector world, and the presence of an eraser that goes some way towards mimicking its raster equivalent makes it even harder to explain why Boolean operations or clipping paths are a usually a better solution to their task.

Outil gomme

Je ne cache pas que la Gomme est l'un des outils que j'apprécie le moins dans Inkscape. Non pas parce qu'il présente des problèmes ou des limites inhérentes, mais parce qu'il est trompeusement familier aux utilisateurs venant d'éditeurs de bitmaps. Trop de mots ont été consacrés sur les fils de discussion des forums dans lesquels les nouveaux utilisateurs d'Inkscape apportent au monde vectoriel leurs idées préconçues sur les bitmaps, et la présence d'une gomme qui imite en partie son équivalent bitmap rend encore plus difficile d'expliquer pourquoi les opérations booléennes ou les chemins de découpe sont généralement une meilleure solution pour leur tâche.

Nevertheless it does exist, and it does have its uses, so it’s nice to see it gaining some additional features in 1.0. The bulk of the additions are to make it operate in a similar way to the Calligraphy Tool: there’s a toggle for pressure-sensitivity, which causes the “Width” field to become a maximum value, but with the actual value used depending on the pressure applied to the stylus. It also gains controls for Thinning, Caps, and Tremor, mirroring those in the Calligraphy tool. I won’t spend any more time discussing these: you can read my description of the Calligraphy tool in part 78 if you wish. I still believe a more useful approach would actually be to draw the erasing line you want using the Calligraphy tool (or some other tool, if you prefer), then either perform a Boolean operation or use it as the basis of a clip or mask.

Néanmoins, il existe bel et bien et il a ses utilisations, il est donc agréable de le voir gagner quelques fonctionnalités supplémentaires dans la version 1.0. La plupart des ajouts visent à le faire fonctionner de manière similaire à l'outil de calligraphie : il y a une bascule pour la sensibilité à la pression, qui fait que le champ « Largeur » devient une valeur maximale, mais la valeur réelle utilisée dépend de la pression appliquée au stylet. Des contrôles pour l'Amincissement, les Terminaisons et les Tremblements ont aussi été ajoutés, comme dans l'outil de calligraphie.

Je ne passerai pas plus de temps à vous en parler : vous pouvez lire ma description de l'outil Calligraphie dans la partie 78 si vous le souhaitez. Je continue à penser qu'une approche plus utile serait en fait de tracer la ligne d'effacement que vous souhaitez à l'aide de l'outil Calligraphie (ou d'un autre outil, si vous préférez), puis d'effectuer une opération booléenne ou de l'utiliser comme base d'une découpe ou d'un masque.

In that vein, however, the second addition to the Eraser is more welcome: a clipping mode. Previously this tool could either erase objects entirely, or cut away parts of the shapes by effectively performing an immediate Boolean operation with the drawn line. The clipping option adds a third button to the Mode section of the tool control bar: With this enabled, the “erasing” is actually performed by creating a clipping path that is immediately applied to the object. Where more than one object is affected, each one gets its own clipping path, independent of the others, even if the original objects overlapped. A very nice touch is that only a single clipping path is created for a given object, even if you erase using several separate strokes. This makes it easier to remove large parts of an object with a thick eraser, then reduce the tool’s width for subsequent passes to refine the shape being removed, without ending up with multiple clip paths to manage.

Dans cette optique, le deuxième ajout à la Gomme est toutefois le bienvenu : un mode de découpage. Auparavant, cet outil pouvait soit effacer entièrement les objets, soit découper des parties des formes en effectuant effectivement une opération booléenne immédiate avec la ligne dessinée. L'option de découpage ajoute un troisième bouton à la section Mode de la barre de contrôle de l'outil :

Lorsque cette option est activée, l'« effacement » est en fait effectué en créant un chemin de découpe qui est immédiatement appliqué à l'objet. Lorsque plusieurs objets sont affectés, chacun d'entre eux reçoit son propre chemin de découpe, indépendamment des autres, même si les objets originaux se chevauchent.

Il est intéressant de noter qu'une seule trajectoire de découpe est créée pour un objet donné, même si vous l'effacez en utilisant plusieurs traits séparés. Il est ainsi plus facile de supprimer de grandes parties d'un objet avec une gomme épaisse, puis de réduire la largeur de l'outil pour les passes suivantes afin d'affiner la forme supprimée, sans devoir gérer plusieurs chemins de découpe.

It’s important to note, however, that the results produced by clipping will not always be the same as those created using Boolean erasing, particularly if the target object has a visible stroke applied. Consider the image below, with a deliberately thick stroke to make the point. On the left is the original shape, whilst the middle and right-hand images show the results of the Boolean eraser and the clipping eraser, respectively. Notice that the Boolean eraser results in separate path objects, each with a complete stroke around them. The clipped shape, on the other hand, is still a single object, so the cut faces are not “closed” by the path. The clipping mode is a great addition to the Eraser tool, creating a non-destructive edit that can later be refined, or reverted entirely, with ease. When creating my comic strips, I often have to apply clipping paths around very precise shapes. Usually I block them out with straight-line paths, then use the Node tool to fine-tune the corners and curves. But this new feature promises to get me 90% of the way to a finished clipping path in a fraction of the time. In fact, this addition alone may have just promoted the Eraser tool from being one of my least used tools, to being a clear favourite.

Il est important de noter, cependant, que les résultats produits par la découpe ne seront pas toujours les mêmes que ceux créés par un effacement booléen, en particulier si un trait visible est appliqué à l'objet cible. Considérons l'image ci-dessous, avec un trait délibérément épais pour faire ressortir ce point. La forme originale se trouve à gauche, tandis que les images du milieu et de droite montrent les résultats de la gomme booléenne et de la gomme de découpe, respectivement. Notez que la gomme booléenne produit des objets chemins séparés, chacun entouré d'un trait complet. La forme découpée, en revanche, reste un objet unique, de sorte que les faces découpées ne sont pas « fermées » par le chemin.

Le mode de découpage est un excellent ajout à l'outil Gomme, créant une modification non destructive qui peut ensuite être facilement affinée, ou supprimée entièrement. Lorsque je crée mes bandes dessinées, je dois souvent appliquer des chemins de découpe autour de formes très précises. Habituellement, je les bloque avec des trajectoires rectilignes, puis j'utilise l'outil Nœud pour affiner les coins et les courbes. Mais cette nouvelle fonctionnalité promet de me permettre d'obtenir 90 % d'un chemin de découpe fini en une fraction du temps. En fait, cet ajout à lui seul a peut-être fait passer l'outil Gomme d'un de mes outils les moins utilisés à un de mes favoris.

Measurement Tool The Measurement tool is another that I rarely use, but which has also seen some small but significant additions in Inkscape v1. This month, I’ll talk about the first of these: an extended “tooltip” that appears when hovering over a path (or an object that can be trivially converted to a path, such as a rectangle, ellipse or star). The tooltip shows the length of the path, as well as the X and Y coordinates, width and height of the object’s bounding box. In theory, this could provide some useful at-a-glance information about a path… if it wasn’t for the fact that the data displayed aren’t always correct. Let me prove this assertion with an example. Here’s a square, drawn so that its top-left corner is at (0, 0), with sides of 10mm. The document properties are set with mm as the display units, and I’m using the geometric bounding box so that the stroke width doesn’t factor into the dimensions.

Outil Mesurer

L'outil Mesurer est un autre outil que j'utilise rarement, mais qui a également fait l'objet de quelques ajouts, petits mais importants, dans Inkscape v1. Ce mois-ci, je parlerai du premier d'entre eux : une « info-bulle » étendue qui apparaît lorsque l'on passe au-dessus d'un chemin (ou d'un objet qui peut être trivialement converti en chemin, comme un rectangle, une ellipse ou une étoile). L'info-bulle indique la longueur de la trajectoire, ainsi que les coordonnées X et Y et la largeur et la hauteur de la boîte englobante de l'objet. En théorie, cela pourrait fournir d'un seul coup d'œil des informations utiles sur une trajectoire… si ce n'était le fait que les données affichées ne sont pas toujours correctes. Permettez-moi de démontrer cette affirmation à l'aide d'un exemple. Voici un carré, dessiné de manière à ce que son coin supérieur gauche soit à (0, 0), avec des côtés de 10 mm. Les propriétés du document sont définies avec des mm comme unités d'affichage et j'utilise la boîte englobante géométrique pour que la largeur du trait ne soit pas prise en compte dans les dimensions.

Switching to the measurement tool and hovering over the square produces this tooltip: The first problem here is that the values displayed are in pixels, even though I specified mm as my display units. That’s easily explained: the Measurement tool has its own toolbar, with a pop-up menu to select the units it displays. Changing that pop-up to “mm” results in this tooltip instead: A quick comparison with the previous screenshot shows that although the units are now correct, the actual numbers are still the pixel values! According to this tool, my 10mm square now has sides that are nearly four times as long.

En passant à l'outil de mesure et en survolant le carré, on obtient cette info-bulle :

Le premier problème ici est que les valeurs affichées sont en pixels, alors que j'ai spécifié des mm comme unités d'affichage. Cela s'explique facilement : l'outil de mesure possède sa propre barre d'outils, avec un menu contextuel pour sélectionner les unités qu'il affiche. En remplaçant « pixels »par « mm » dans ce menu déroulant, on obtient cette info-bulle :

Une comparaison rapide avec la capture d'écran précédente montre que bien que les unités soient maintenant correctes, les chiffres réels sont toujours les valeurs en pixels ! D'après cet outil, mon carré de 10 mm a maintenant des côtés presque quatre fois plus longs.

And what of that Y value? I drew the rectangle from top-left to bottom-right, the selector tool shows the Y value as zero, and even the XML editor agrees. Yet, for some reason, the measurement tool wants to take its Y value from the bottom of the shape, not the top. Now let’s give it a more complex path to work on, by duplicating the square, moving the copy, then using Path > Union to convert the two squares into a single path comprising two sub-paths. Since each sub-path’s perimeter is 151.18px, surely the Length in the tooltip for both paths must simply be double that value, right? Wrong.

Et qu'en est-il de cette valeur Y ? J'ai dessiné le rectangle du haut à gauche au bas à droite, l'outil de sélection indique la valeur Y comme étant zéro, et même l'éditeur XML est d'accord. Pourtant, pour une raison quelconque, l'outil de mesure veut prendre sa valeur Y depuis le bas de la forme, et non le haut.

Donnons-lui maintenant un chemin plus complexe à travailler, en dupliquant le carré, en déplaçant la copie, puis en utilisant Path > Union pour convertir les deux carrés en un seul chemin comprenant deux sous-chemins. Puisque le périmètre de chaque sous-chemin est de 151,18 px, la longueur dans l'info-bulle des deux chemins doit sûrement être le double de cette valeur, n'est-ce pas ? Non, c'est faux.

The Length displayed for two identical paths combined is over 7.5 times the value shown for a single path! The Height and Width values also have me scratching my head: they might make sense if the squares were arranged along a diagonal, but they’re side-by-side. Here’s what they look like when using the Select tool, together with the tool control bar’s interpretation of these values (in px): Having the Select tool declaring a width of 83.795px and height of 37.795, while the Measurement tool claims values of 316.71px and 142.85px, leaves me thoroughly confused as to how the values in the tooltip are actually calculated. This situation leaves me uneasy about the measurement tool in general; I wonder what it has to say when used in the traditional click-and-drag mode?

La longueur affichée pour deux chemins identiques combinés est plus de 7,5 fois la valeur affichée pour un seul chemin ! Les valeurs de Hauteur et de Largeur me font également tourner la tête : elles pourraient avoir un sens si les carrés étaient disposés en diagonale, mais ils sont côte à côte. Voici à quoi elles ressemblent lorsque vous utilisez l'outil de sélection, ainsi que l'interprétation de ces valeurs par la barre de contrôle de l'outil (en px) :

Le fait que l'outil de sélection déclare une largeur de 83,795 px et une hauteur de 37,795, alors que l'outil de mesure déclare des valeurs de 316,71 px et 142,85 px, me laisse complètement perplexe quant à la manière dont les valeurs de l'info-bulle sont réellement calculées. Cette situation me laisse mal à l'aise par rapport à l'outil de mesure en général ; je me demande ce qu'il doit dire lorsqu'il est utilisé dans le mode traditionnel « cliquer-tirer » ?

For clarity, I’ve copied and enlarged the top and right values, and put them inside the boxes. The width and height are reported as the expected values of 83.79px and 37.79px. The tooltip mode has another feature which I’ll mention for completeness: when used on a group of paths, it will show values for the width, height and position of the whole group, but you can hold Ctrl (incorrectly described as Shift in the release notes) to see the data for an individual path. But given that the values in the tooltip clearly can’t be trusted, this capability is somewhat moot.

Pour plus de clarté, j'ai copié et agrandi les valeurs du haut et de droite, et je les ai mises dans les boîtes. La largeur et la hauteur sont indiquées comme les valeurs attendues de 83,79 px et 37,79 px.

Le mode info-bulle possède une autre caractéristique que je mentionnerai pour être complet : lorsqu'il est utilisé sur un groupe de chemins, il affichera les valeurs pour la largeur, la hauteur et la position de l'ensemble du groupe, mais vous pouvez maintenir la touche Ctrl (incorrectement décrite comme Maj dans les notes de publication) pour voir les données d'un chemin individuel. Toutefois, étant donné que les valeurs de l'info-bulle ne sont pas fiables, cette fonction est quelque peu discutable.

issue164/inkscape.txt · Dernière modification : 2020/12/30 15:57 de andre_domenech