Outils pour utilisateurs

Outils du site


issue129:inkscape

This time, we’re going to move on to the final batch of new LPEs in 0.92, starting with one that’s both simple to use and potentially very useful: Perspective/Envelope. One significant limitation of SVG, from an artistic point of view, is that it allows for only affine transformations. These are transformations that preserve straight and parallel lines, limiting Inkscape to rotation, scaling and skewing. Non-affine transformations allow the source image to be more radically changed, introducing curves or distortions that let parallel lines converge. They would be a great addition to SVG – especially to allow text to be distorted into logos whilst retaining accessibility – but unfortunately it seems to be an enhancement that’s of little interest to the SVG Working Group. The Perspective/Envelope LPE provides a couple of non-affine transformations, though there’s still no accessibility gain to be had as text must be converted to paths first. In short, they allow you to distort a path (or group of paths) to follow the shape of a bounding quadrilateral. Changing the positions of the four corners of the bounding shape causes the path to be distorted accordingly.

Cette fois-ci, nous passons au dernier lot de nouveaux LPE de la 0.92, en commençant par celui qui est à la fois simple à utiliser et potentiellement très utile : Perspective et Enveloppe.

Une des limitations importantes de SVG, d'un point de vue artistique, est qu'il ne permet que des transformations affines. Ce sont les transformations qui conservent les lignes droites et parallèles, limitant Inkscape aux rotations, mises à l'échelle et inclinaisons. Les transformations non-affines permettent que l'image source soit modifiée plus radicalement, en introduisant des courbes ou des distorsions qui font converger les lignes parallèles. Ce serait un ajout superbe à Inkscape - particulièrement pour permettre de déformer du texte dans les logos tout en maintenant l’accessibilité - mais, malheureusement, il semble que ce soit un ajout de peu d'intérêt pour le groupe de travail SVG.

Le LPE Perspective et Enveloppe fournit deux transformations non-affines, bien qu'il n'y ait pas de bénéfice en accessibilité, car le texte doit d'abord être transformé en chemins. En résumé, elles vous permettent de déformer un chemin (ou un groupe de chemins) pour suivre la forme d'un quadrilatère fermé. La modification des quatre coins de la forme fermée entraîne la déformation concomitante du chemin.

The effect has a simple UI: the spinboxes at the bottom display the coordinates of the four handles and can largely be ignored as it’s easier to just move the handles on the canvas using the Node tool (F2). The two “mirror” checkboxes are self-explanatory – though there’s no point checking both at once as that will limit you to affine scaling that could be done with Inkscape’s usual transformation tools. The Overflow Perspective checkbox allows the algorithm that calculates perspective transformations to go beyond its usual bounds, allowing for some outlandish distortions that probably have little use in the real world. The “Type” popup lets you choose whether to use Envelope or Perspective deformation. You can freely switch between them to see which gives the best result for your particular image but, broadly speaking, Envelope is a simple distortion of your shape to fit the outline, whereas Perspective allows more complex distortions to provide a sense of depth. You can see the difference in this example – note the more constant thickness of the letters from left to right on the Envelope distortion (top) compared with the Perspective version.

L'effet a une interface utilisateur simple : les champs à incrémentation affichent les coordonnées des quatre poignées et ils peuvent être largement ignorés car il est plus facile de déplacer les poignées sur le canevas en utilisant l'outil Nœuds (F2). Les deux cases à cocher « miroir » sont simples à comprendre, bien qu'il ne serve à rien de cocher les deux d'un coup ce qui vous limitera à l'affinage de la mise à l'échelle qui pourrait être faite avec les habituels outils de transformation d'Inkscape. La case à cocher Perspective du débordement permet à l'algorithme de calculer les transformations de la perspective en allant au-delà de ses limites habituelles, autorisant certaines distorsions exotiques qui ont probablement peu d'utilisation dans le monde réel.

La liste déroulante « Type » vous permet de choisir d'utiliser une déformation, soit de l'Enveloppe, soit de la Perspective. Vous pouvez librement passer de l'une à l'autre pour voir ce qui donne le meilleur résultat pour votre image précise, mais, en général, Enveloppe est une simple déformation de votre forme pour s'adapter au contour, alors que Perspective permet des distorsions plus complexes pour donner une impression de profondeur. Vous pouvez voir la différence dans cet exemple : notez l'épaisseur plus constante des lettres de la gauche vers la droite avec la distorsion Enveloppe (en haut) par rapport à la version Perspective.

For even more wild distortions, the “Lattice Deformation 2” LPE lets you distort your path (or group of paths) by adjusting the position of 25 nodes in a 5×5 grid. The UI for this is self explanatory – but don’t be tempted to expand the “Show Points” section unless you’ve got a very tall monitor! It presents a long list of fields holding the coordinates for all 25 nodes and, unfortunately, the LPE dialog doesn’t resize back down again when you close the list, leaving you wrestling with a dialog that’s too big for many screens. Here’s an example of the kind of transformation that is trivial to perform with this effect: The next couple of effects allow you to create via an LPE the sort of symmetry tricks that would have previously required manually setting up some mirrored or rotated clones – as described way back in part 29 of this series. Starting with the Mirror Symmetry effect, once again we have a simple UI that can produce some rather complex results.

Pour des distorsions encore plus délirantes, le LPE « Déformation par grille 2 » vous laisse distordre votre chemin (ou groupe de chemins) en ajustant la position de 25 nœuds dans une grille de 5×5. L'interface utilisateur de celui-ci est simple à comprendre, mais ne vous laissez pas tenter à étendre la section « Afficher les points », sauf si vous avez un très grand écran ! Elle présente une longue liste de champs contenant les coordonnées des 25 nœuds et, malheureusement, le dialogue du LPE ne se réduit pas quand vous fermez la liste, vous laissant vous battre avec un dialogue qui est trop grand pour beaucoup d'écrans. Voici un exemple du genre de transformation qui est simple à réaliser avec cet effet :

Les deux effets suivants vous permettent de créer, via un LPE, la sorte d'astuce de symétrie qui vous aurait précédemment demandé de paramétrer à la main des clones mirorés ou tournés, comme je l'avais décrit dans la partie 29 de cette série. Commençons par l'effet « Tourner les copies », qui a, lui aussi, une interface simple et peut produire des résultats assez compliqués.

This effect simply creates multiple copies of the input path, rotated around a common center. The “Number of copies” field defines the number of copies that are created (the original is lost in the process), whilst the “Starting” and “Rotation angle” fields are used to define the angle at which the first copy is placed, and the angle between each copy, respectively. The rotation angle is ignored if the “360° Copies” box is checked – in which case the copies are spaced evenly over a whole circle. In this image, you can see two stylised sun images – the former has the box checked to create a whole sun, whilst the latter uses a smaller rotation angle and different starting angle to produce a sunrise or sunset shape. The rotational center for the effect can be manually set using the corresponding fields or, more practically, by dragging the handle that appears in Node editing mode. There is also a second handle for adjusting the starting angle – though oddly there’s no third one for setting the rotation angle. The “Fuse paths” checkbox determines whether overlapping paths in the output are kept as separate sub-paths, or fused together into a composite shape. The difference can be seen in the following example, where the shapes in the left hand image are kept separate, whilst those on the right are fused:

Cet effet crée tout simplement de multiples copies de votre chemin d'entrée, les tournant autour d'un centre commun. Le champ « Nombre de copies » définit le nombre de copies qui sont créées (l'original est perdu dans l'opération), tandis que les champs « Départ » et « Angle de rotation » sont utilisés pour définir respectivement l'angle auquel la première copie est placée et l'angle entre chaque copie. L'angle de rotation est ignoré si la case « Copies sur 360 ° » est cochée ; dans ce cas, les copies sont espacées régulièrement sur un cercle complet. Dans cette image, vous pouvez voir deux images stylisées de soleil : la première a la case cochée pour créer un soleil complet, alors que la suivante utilise un angle de rotation plus petit et un angle de départ différent pour produire une forme de lever ou coucher de soleil.

Le centre de rotation de cet effet peut être réglé manuellement en utilisant les champs correspondants, ou, plus pratique, en tirant à la souris la poignée qui apparaît dans le mode édition du Nœud. Il y a aussi une seconde poignée pour ajuster l'angle de départ, bien que, bizarrement, il n'y en ait pas une troisième pour définir l'angle de rotation. La case à cocher « Fondre les chemins » détermine si les chemins superposés sont conservés en sortie comme des sous-chemins séparés ou s'ils sont fusionnés ensemble en une forme composite. La différence peut être vue dans l'exemple suivant, où les formes de l'image de gauche sont restées séparées, alors que celles de droite sont fusionnées.

If you do fuse the shapes, don’t be surprised to see the output somewhat truncated. Try moving the rotation start using the on-canvas handle to gradually expose more of your original shape. The mesmerising effect as you dynamically do this is similar to a kaleidoscope – indeed the original name for this effect was Kaleidoscope! It’s worth noting that, whether you fuse the shapes or not, the result of the LPE is (as always) a single path. The effect of this is clearer when a fill pattern is used on the original path – the entire output path takes on the fill pattern as one, it is not rotated with the individual shapes. If you want the fill to rotate with each copy you’ll need to use real duplicates or clones rather than an LPE. The second of the symmetry effects, Mirror Symmetry, does a similar trick to Rotate Copies, but using reflective symmetry rather than rotational. The UI also has a few similarities:

Si vous fusionnez les formes, ne soyez pas surpris de voir la sortie quelque peu tronquée. Essayez de déplacer l'angle de départ en utilisant la poignée sur le canevas pour faire apparaître graduellement plus de votre forme originale. L'effet fascinant quand vous le faites est similaire à celui d'un kaléidoscope, et, en effet, le nom d'origine de cet effet était Kaléidoscope !

Notez bien, que vous fusionniez les formes ou pas, que le résultat du LPE est (comme toujours) un chemin unique. L'effet de ceci est plus clair si un motif de remplissage est utilisé pour le chemin d'origine : tout le chemin de sortie prend le motif en une seule fois ; il n'est pas tourné individuellement suivant chaque forme. Si vous voulez que le remplissage soit tourné avec chaque copie, vous devrez utiliser des doubles ou des clones réels plutôt qu'un LPE.

Le second des effets de symétrie, Reflet miroir, fait une opération similaire à Tourner les copies, mais en utilisant une symétrie de réflexion plutôt que rotative. Son interface a quelques similitudes.

Whereas rotation takes place around a single point, reflection requires a line; the pop-up offers several different options, including reflection about the horizontal or vertical center line of the page, but by far the most useful option is (at least in my installation) labelled “Free from reflection line” - where I think “free from” is a typo for “free form”. In this mode, a mirror line appears on the page which can be moved using on-canvas handles via the Node tool. The two end handles are used to scale and rotate the line, the center one to move it without changing its orientation. If you choose the “X from middle knot” option in the pop-u,p the line becomes vertical and can be dragged via the center handle to set its distance from the original path; there’s also a corresponding “Y” option for a horizontal mirror line. The “Discard original path?” option is pretty self-descriptive – it removes the original path leaving only the reflection. If the original and its reflection overlap, the “Fuse paths” checkbox behaves the same as the corresponding one in the Rotate Copies effect: by definition this implies that the original object straddles the mirror line; the “Opposite fuse” option lets you switch which side of the line is kept and which is discarded when the fuse takes place. There’s no option to keep both sides, which seems like something of an oversight.

Alors que la rotation a lieu autour d'un point unique, le reflet nécessite une ligne ; la liste déroulante offre différentes options, y compris le reflet par rapport à la ligne centrale horizontale ou verticale de la page. Mais l'option de loin la plus utile (au moins pour moi) est étiquetée « Sans ligne de réflexion » - où je pense que « Sans ligne » est une coquille pour « Forme libre » (en anglais, « Free from » au lieu de « Free form »). Dans ce mode, une ligne de réflexion apparaît sur la page qui peut être déplacée en utilisant les poignées sur le canevas via l'outil Nœuds. Les deux poignées terminales sont utilisées pour mettre à l'échelle et tourner la ligne, celle du centre, pour la déplacer sans changer son orientation. Si vous choisissez l'option « X du nœud du milieu », la ligne devient verticale et peut être tirée par la poignée du milieu pour régler sa distance par rapport au chemin d'origine ; une option équivalente « Y » existe pour une ligne de reflet horizontal.

L'option « Abandonner le chemin original ? » est assez simple à comprendre, elle supprime le chemin d'origine en ne conservant que le reflet. Si l'original et son reflet sont superposés, la case « Fondre les chemins » a le même comportement que celle correspondante de l'effet Tourner les copies : par définition, ceci implique que l'objet d'origine chevauche la ligne de miroir ; l'option « Fondu opposé » vous permet de commuter le côté de la ligne qui est conservé et celui qui est supprimé quand la fusion a lieu. Il n'y a pas d'option pour conserver les deux côtés, ce qui ressemble à un oubli.

Although the Mirror Symmetry effect allows only a single mirror line to be used, you can, of course, add multiple copies of the LPE, each with different settings, in order to mirror an object in multiple directions – such as in both the X and Y directions to create four shapes from the original one. We’re now down to the last three LPEs that have been introduced with 0.92, and, quite frankly, they don’t warrant their own article, so I’ll finish with a whistle-stop tour of “Bounding Box”, “Ellipse by 5 Points” and “Attach Path”. What can I say about the Bounding Box LPE, other than “I couldn’t get it to work”? It’s supposed to let you add the effect to a sacrificial path, then link another path to it – at which point the sacrificial path is replaced by a rectangle that surrounds the linked path. That much seems to work – at least for simple examples – but the new rectangle is also meant to follow any transformations that you perform on the linked path, and in my testing this simply did not happen. The release notes suggest that this effect could be used to add a background color to a PNG export, but I think I’ll stick to drawing a rectangle of my own and putting it at the bottom of the z-order.

Bien que l'effet « Reflet miroir » ne permette d'utiliser qu'une simple ligne de miroir, vous pouvez, bien sûr, ajouter de multiples copies du LPE, chacune avec des réglages différents de façon à refléter un objet dans de multiples directions, comme dans les deux directions X et Y pour créer quatre formes à partir de l'original.

Nous voici maintenant arrivés aux trois derniers LPE introduits dans la 0.92 et, très franchement, ils ne méritent pas un article pour eux seuls ; aussi, je finirai avec un tour rapide de « Boîte englobante », « Ellipse par 5 points » et « Joindre un chemin ».

Que puis-je dire d'autre à propos du LPE Boîte englobante que « je n'ai pas réussi à le faire fonctionner » ? Il est supposé vous permettre d'ajouter l'effet à un chemin à sacrifier, puis de lier un autre chemin à celui-ci ; à ce moment-là, le chemin à sacrifier est remplacé par un rectangle qui entoure le chemin lié. Jusque-là, ça semble bien marcher (au moins pour des exemples simples), mais le nouveau rectangle est aussi supposé suivre toute transformation que vous faites au chemin lié ; et, lors de mon essai, ça ne marchait pas. Les notes de publication suggèrent que cet effet pourrait être utilisé pour ajouter une couleur de fond à un export en PNG, mais je pense que je m'en tiendrai à dessiner mon propre rectangle et en le mettant en la plus basse position sur l'axe z.

The Ellipse By 5 Points effect has no UI whatsoever. All it does is replace your input path with an ellipse that passes through the first five points of your path. It has no effect if your path has less than five points – or they’re arranged in a way that can’t form an ellipse – and it simply ignores any beyond the first five. I’m sure it will be useful to someone, but if you just want an ellipse in your drawing and don’t have a mathematical requirement for it to pass through five specific points, it’s more efficient to simply draw one with the Ellipse tool and then size and rotate it as necessary. The final LPE, Attach Path, lets you join one path to another by creating an additional line segment from the start of the path with the LPE to an arbitrary point on a linked path. You can also do the same from the end of the path, allowing a single path to potentially be attached to two others, should you wish. The position of the join on the linked path is set via the relevant position spinbox; a value of 0.00 will attach to the start of the linked path, whilst 1.00 will attach to the end of the first line segment, 2.00 to the end of the second, and so on. You can use fractional values as well, so that 2.50 would connect your line to a point halfway along the third segment of the linked path. These positions can also be set via on-canvas handles with the Node tool active. The new line segments can be curved at either end via on-canvas handles or the relevant Angle and Distance fields in the UI. To make the lines straight, set the distances to zero (it would be nice if a future release of Inkscape added shortcut buttons to do this for you).

L'effet Ellipse par 5 points n'a aucune interface utilisateur. Tout ce qu'il fait est de remplacer votre chemin d'entrée par une ellipse qui passe par les cinq premiers points de votre chemin. Il n'y a aucun effet si votre chemin a moins de cinq points, ou s'ils sont placés de telle sorte qu'une ellipse est impossible à tracer, et il ignore tous les points au-delà du cinquième. Je suis sûr qu'il sera utile à quelqu'un, mais, si vous voulez juste une ellipse dans votre dessin et n'avez pas d'exigence mathématique pour qu'elle passe par cinq points précis, c'est plus efficace d'en tracer une avec l'outil Ellipse et de la dimensionner et tourner comme nécessaire.

Le dernier LPE, Joindre un chemin, vous permet de joindre un chemin à un autre en créant un segment de ligne supplémentaire du début de votre chemin du LPE à un point arbitraire du chemin lié. Vous pouvez aussi faire de même à partir de la fin du chemin, permettant à un seul chemin d'être potentiellement attaché à deux autres, si vous le souhaitiez. La position de la liaison sur le chemin lié est réglée avec le champ à incrémentation correspondant ; une valeur de 0,00 l'attachera au début de votre chemin lié, alors que 1,00 l'attachera à la fin du premier segment, 2,00 à la fin du second, et ainsi de suite. Vous pouvez aussi utiliser des valeurs fractionnaires ; c'est ainsi que 2,50 connecterait votre ligne à la moitié du troisième segment du chemin lié. Ces positions peuvent aussi être établies via les poignées sur le canevas avec l'outil Nœuds activé. Les nouveaux segments de ligne peuvent être incurvés à l'une ou l'autre extrémité via les poignées sur le canevas ou les champs Angle et Distance correspondants dans l'interface. Pour avoir des lignes droites, mettez les distances à zéro (ce serait bien si, dans une publication future d'Inkscape, des boutons de raccourcis étaient ajoutés pour le faire à votre place).

This effect provides a workaround to another missing feature from SVG – the ability to have a path with a branch in it. By attaching paths together with this LPE, the connections will be maintained even if the original or linked paths are transformed or edited, making this a potentially useful effect for diagrams such as family trees.

Cet effet fournit une solution de contournement à un autre effet SVG manquant : la possibilité d'avoir un chemin qui contient une branche. En attachant les chemins ensemble avec ce LPE, le connexions seront conservées même si l'original ou les chemins liés sont transformés ou modifiés, ce qui rend cet effet potentiellement utile pour des diagrammes tels que des arbres généalogiques.

issue129/inkscape.txt · Dernière modification : 2018/02/03 16:36 de andre_domenech