issue162:inkscape
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
issue162:inkscape [2020/11/08 15:16] – d52fr | issue162:inkscape [2020/11/09 10:35] (Version actuelle) – auntiee | ||
---|---|---|---|
Ligne 5: | Ligne 5: | ||
Comme vous l'avez peut-être remarqué dans la section Actualités de l' | Comme vous l'avez peut-être remarqué dans la section Actualités de l' | ||
- | Quelles sont les nouveautés de la dernière version ? Il s'agit principalement de corrections de bogues et d' | + | Quelles sont les nouveautés de la dernière version ? Il s'agit principalement de corrections de bogues et d' |
**‘Path > Object to Path’ is a mainstay of any experienced Inkscape user. As the name suggests, it converts your object to a path, and is therefore commonly used when you want to break out of the design shackles imposed by an object’s native type. Whilst a rectangle can have only its width, height and corner radius modified, converting it into a path lets you move individual nodes, add more, or delete others. Since paths are so flexible, it can open up a world of design possibilities – albeit at the expense of losing access to the specialized editing tools for the original object type. | **‘Path > Object to Path’ is a mainstay of any experienced Inkscape user. As the name suggests, it converts your object to a path, and is therefore commonly used when you want to break out of the design shackles imposed by an object’s native type. Whilst a rectangle can have only its width, height and corner radius modified, converting it into a path lets you move individual nodes, add more, or delete others. Since paths are so flexible, it can open up a world of design possibilities – albeit at the expense of losing access to the specialized editing tools for the original object type. | ||
Ligne 13: | Ligne 13: | ||
La fonction « Chemin > Objet en chemin » est un élément essentiel pour tout utilisateur expérimenté d' | La fonction « Chemin > Objet en chemin » est un élément essentiel pour tout utilisateur expérimenté d' | ||
- | Il n'y a de controverse | + | Il n'y a rien de problématique |
**Despite the similar name, however, Path > Stroke to Path is an entirely different beast. At its core it converts any stroke that you may have on your object into a new filled path which matches the stroke’s original outline. If it sounds confusing, perhaps some examples will help. Let’s start with the simplest example possible: a straight line. | **Despite the similar name, however, Path > Stroke to Path is an entirely different beast. At its core it converts any stroke that you may have on your object into a new filled path which matches the stroke’s original outline. If it sounds confusing, perhaps some examples will help. Let’s start with the simplest example possible: a straight line. | ||
Ligne 21: | Ligne 21: | ||
Cependant, malgré le nom similaire, Chemin > Contour en Chemin est un animal totalement différent. En effet, il convertit tous les traits que vous pouvez avoir sur votre objet en un nouveau chemin rempli qui correspond au contour original du trait. Si cela vous paraît déroutant, quelques exemples vous aideront peut-être. Commençons par l' | Cependant, malgré le nom similaire, Chemin > Contour en Chemin est un animal totalement différent. En effet, il convertit tous les traits que vous pouvez avoir sur votre objet en un nouveau chemin rempli qui correspond au contour original du trait. Si cela vous paraît déroutant, quelques exemples vous aideront peut-être. Commençons par l' | ||
- | La ligne du haut est notre chemin d' | + | La ligne du haut est notre chemin d' |
**The bottom line is the result of the Stroke to Path operation. You can see that what we now have is a filled path consisting of four nodes arranged to match the original stroke’s outline. The fact that it’s a filled path is a really important point to grasp: the original shape had a stroke but no fill, whereas the new shape has a fill but no stroke. The fill color of the new shape is the same as that of the original’s stroke color in order to produce a result that is visually identical. | **The bottom line is the result of the Stroke to Path operation. You can see that what we now have is a filled path consisting of four nodes arranged to match the original stroke’s outline. The fact that it’s a filled path is a really important point to grasp: the original shape had a stroke but no fill, whereas the new shape has a fill but no stroke. The fill color of the new shape is the same as that of the original’s stroke color in order to produce a result that is visually identical. | ||
Ligne 29: | Ligne 29: | ||
La ligne du bas est le résultat de l' | La ligne du bas est le résultat de l' | ||
- | Pourquoi | + | Pourquoi |
**These days Inkscape can simulate variable width strokes using Live Path Effects, but that wasn’t always the case. The LPE approach also supports varying the thickness only symmetrically, | **These days Inkscape can simulate variable width strokes using Live Path Effects, but that wasn’t always the case. The LPE approach also supports varying the thickness only symmetrically, | ||
Ligne 39: | Ligne 39: | ||
De nos jours, Inkscape peut simuler des traits de largeur variable en utilisant les Effets de chemin dynamiques (LPE), mais cela n'a pas toujours été le cas. L' | De nos jours, Inkscape peut simuler des traits de largeur variable en utilisant les Effets de chemin dynamiques (LPE), mais cela n'a pas toujours été le cas. L' | ||
- | Examinons un exemple plus compliqué. Cette fois-ci, nous allons passer directement à une ligne multi-segments | + | Examinons un exemple plus compliqué. Cette fois-ci, nous allons passer directement à une ligne multi-segments |
Notre ligne convertie commence à être un peu plus intéressante. Au lieu d'un simple chemin rempli, nous avons maintenant un chemin complexe, composé d'un certain nombre de sous-chemins remplis qui correspondent à l' | Notre ligne convertie commence à être un peu plus intéressante. Au lieu d'un simple chemin rempli, nous avons maintenant un chemin complexe, composé d'un certain nombre de sous-chemins remplis qui correspondent à l' | ||
Ligne 47: | Ligne 47: | ||
Hopefully it’s now pretty clear what Stroke to Path does when presented with the simple case of an object with just a stroke applied. But what happens when your object is a bit more complex? Here’s a line with a stroke applied, but also with markers at the start, end, and at each intermediate node.** | Hopefully it’s now pretty clear what Stroke to Path does when presented with the simple case of an object with just a stroke applied. But what happens when your object is a bit more complex? Here’s a line with a stroke applied, but also with markers at the start, end, and at each intermediate node.** | ||
- | Au début, cela peut être un peu difficile à comprendre. Comme la forme résultante est toujours la même, il n'est pas évident qu'il s' | + | Au début, cela peut être un peu difficile à comprendre. Comme la forme résultante est toujours la même, il n'est pas évident qu'il s' |
- | Heureusement, | + | Heureusement, |
**What do you think should happen when Stroke to Path is applied to this object? To my mind there are three possible alternatives: | **What do you think should happen when Stroke to Path is applied to this object? To my mind there are three possible alternatives: | ||
Ligne 57: | Ligne 57: | ||
Really old versions of Inkscape went with option 1. Stroke to Path converted the stroke to a path, and ignored everything else. But since version 0.44 (released in 2006), Inkscape uses the second option (no version uses the third option). This, however, is where not-so-subtle differences in behaviour for 1.0.x start to creep in.** | Really old versions of Inkscape went with option 1. Stroke to Path converted the stroke to a path, and ignored everything else. But since version 0.44 (released in 2006), Inkscape uses the second option (no version uses the third option). This, however, is where not-so-subtle differences in behaviour for 1.0.x start to creep in.** | ||
+ | |||
+ | Que pensez-vous qu'il devrait se passer lorsque l' | ||
+ | ••Retirer les marqueurs et convertir le trait comme auparavant. | ||
+ | ••Convertir le trait, mais aussi transformer les marqueurs en chemins remplis. | ||
+ | ••Convertir le trait, mais copier les marqueurs dans les nouveaux chemins, de sorte que chaque sous-chemin se retrouve avec plusieurs marqueurs. | ||
+ | |||
+ | Les très anciennes versions d' | ||
**Consider the shape above. Up to version 0.92 using Stroke to Path on this would have created a group containing five objects: the complex path generated by converting the stroke, and a separate path for each marker. In version 1.0.x the result is somewhat different. Now the output is a group containing two elements: the complex path, plus a nested group which contains four more deeply nested groups – one for each marker. Each of those marker groups contains two paths, one each for the fill and the stroke of the marker. Yes, I said the stroke of the marker. I know you probably weren’t even aware of markers having a separate stroke, but apparently they do and they’re now converted into a path of their own. | **Consider the shape above. Up to version 0.92 using Stroke to Path on this would have created a group containing five objects: the complex path generated by converting the stroke, and a separate path for each marker. In version 1.0.x the result is somewhat different. Now the output is a group containing two elements: the complex path, plus a nested group which contains four more deeply nested groups – one for each marker. Each of those marker groups contains two paths, one each for the fill and the stroke of the marker. Yes, I said the stroke of the marker. I know you probably weren’t even aware of markers having a separate stroke, but apparently they do and they’re now converted into a path of their own. | ||
If this sounds a little confusing, perhaps an image of the structure will help. On the left we have the Objects dialog from 0.92, and on the right we have one from 1.0.1 (excuse the different themes – the 1.0.1 snap is still broken with the standard theme, so I’m using the symbolic theme):** | If this sounds a little confusing, perhaps an image of the structure will help. On the left we have the Objects dialog from 0.92, and on the right we have one from 1.0.1 (excuse the different themes – the 1.0.1 snap is still broken with the standard theme, so I’m using the symbolic theme):** | ||
+ | |||
+ | Considérez la forme ci-dessus. Jusqu' | ||
+ | |||
+ | Si cela vous semble un peu déroutant, peut-être qu'une image de la structure vous aidera. À gauche, nous avons le dialogue des Objets de la version 0.92, et à droite, celui de la version 1.0.1 (excusez les différents thèmes - le snap de la version 1.0.1 est toujours en rupture avec le thème standard, donc j' | ||
**As you can see, the structures are substantially different. If you do want to convert a 1.0 arrangement to the old structure, it’s quite simple: you just need to use Path > Union on each pair of marker paths (this is easier if you select them in the Objects dialog rather than on-canvas), then select the group that contains the markers (i.e. not the top-level group, but the one just inside that), then repeatedly ungroup until you’re left with a structure that looks like the one in the 0.92 dialog. Yes, “it’s quite simple” was sarcasm. | **As you can see, the structures are substantially different. If you do want to convert a 1.0 arrangement to the old structure, it’s quite simple: you just need to use Path > Union on each pair of marker paths (this is easier if you select them in the Objects dialog rather than on-canvas), then select the group that contains the markers (i.e. not the top-level group, but the one just inside that), then repeatedly ungroup until you’re left with a structure that looks like the one in the 0.92 dialog. Yes, “it’s quite simple” was sarcasm. | ||
For most users, this may never present a problem. The sort of use-case that requires you to add markers to your path does not generally intersect much with the use-cases for converting the stroke to a path. So, let’s look at a far more common scenario: a path with both a stroke and a fill, but no markers. Here’s what happens in 0.92.x, again with the original shapes at the top, and the Stroke to Path conversions at the bottom:** | For most users, this may never present a problem. The sort of use-case that requires you to add markers to your path does not generally intersect much with the use-cases for converting the stroke to a path. So, let’s look at a far more common scenario: a path with both a stroke and a fill, but no markers. Here’s what happens in 0.92.x, again with the original shapes at the top, and the Stroke to Path conversions at the bottom:** | ||
+ | |||
+ | Comme vous pouvez le voir, les structures sont sensiblement différentes. Si vous voulez convertir un arrangement 1.0 en ancienne structure, c'est très simple : il suffit d' | ||
+ | |||
+ | Pour la plupart des utilisateurs, | ||
**The obvious take-away from this is that 0.92 removes the fill entirely before the stroke is converted to a path. I’ve shown both closed and open shapes to make it clear that the behaviour is the same in both cases. Structurally, | **The obvious take-away from this is that 0.92 removes the fill entirely before the stroke is converted to a path. I’ve shown both closed and open shapes to make it clear that the behaviour is the same in both cases. Structurally, | ||
Since version 1.0, however, performing a Stroke to Path operation on a shape with a fill results in a group that contains two filled paths: one is the usual path following the shape of the original stroke, whilst the other is a path representing the fill (i.e. it’s just a copy of the original path, but without the stroke). The end result is visually identical to the original object.** | Since version 1.0, however, performing a Stroke to Path operation on a shape with a fill results in a group that contains two filled paths: one is the usual path following the shape of the original stroke, whilst the other is a path representing the fill (i.e. it’s just a copy of the original path, but without the stroke). The end result is visually identical to the original object.** | ||
+ | |||
+ | Ce qu'il faut retenir de cette conversion est que, dans la 0,92, le remplissage est entièrement supprimé avant que le contour ne soit converti en chemin. J'ai montré des formes ouvertes et fermées pour montrer clairement que le comportement est le même dans les deux cas. Structurellement, | ||
+ | |||
+ | Depuis la version 1.0, cependant, l' | ||
**As I’m sure you’ve guessed by now, performing a Stroke to Path on a shape with the holy trinity of stroke, fill and markers, results in a group containing: | **As I’m sure you’ve guessed by now, performing a Stroke to Path on a shape with the holy trinity of stroke, fill and markers, results in a group containing: | ||
Ligne 76: | Ligne 95: | ||
There are a few things to unpick from these changes. First of all, if you have an object with just a stroke then the behaviour is the same as it has always been: you end up with a single filled path, which will have sub-paths if the stroke was dashed.** | There are a few things to unpick from these changes. First of all, if you have an object with just a stroke then the behaviour is the same as it has always been: you end up with a single filled path, which will have sub-paths if the stroke was dashed.** | ||
+ | |||
+ | Comme vous l'avez sûrement deviné, en effectuant un Contour en Chemin sur une forme avec la trinité sacrée du contour, du remplissage et des marqueurs, le résultat obtenu est un groupe contenant : | ||
+ | ••Un chemin pour le contour | ||
+ | ••Un chemin pour le remplissage | ||
+ | ••Un groupe contenant un groupe individuel pour chaque marqueur, chacun de ces groupes contenant un chemin pour le contour du marqueur et un chemin pour le remplissage du marqueur. | ||
+ | |||
+ | Il y a quelques points à tirer de ces changements. Tout d' | ||
**If your path has a stroke and a fill, however, you’ll now end up with a group, rather than the fill being thrown away. This is particularly important to note if following an older tutorial. Many of them either rely on the fill being removed, or instruct you to duplicate the object before applying Stroke to Path so that you don’t lose the fill. To get the same result as earlier versions, you can do one of two things: | **If your path has a stroke and a fill, however, you’ll now end up with a group, rather than the fill being thrown away. This is particularly important to note if following an older tutorial. Many of them either rely on the fill being removed, or instruct you to duplicate the object before applying Stroke to Path so that you don’t lose the fill. To get the same result as earlier versions, you can do one of two things: | ||
Ligne 82: | Ligne 108: | ||
Despite the confusion this change has caused with some new users, I generally think it’s an improvement. Consider the case of drawing a simple cartoon character, with thick black outlines (strokes), and colored clothes and skin (fill). If you want to add some variety to the stroke thickness, the new behaviour makes it easier to do so without having to duplicate every object, then remove its stroke, just to keep a copy of the filled shape.** | Despite the confusion this change has caused with some new users, I generally think it’s an improvement. Consider the case of drawing a simple cartoon character, with thick black outlines (strokes), and colored clothes and skin (fill). If you want to add some variety to the stroke thickness, the new behaviour makes it easier to do so without having to duplicate every object, then remove its stroke, just to keep a copy of the filled shape.** | ||
+ | |||
+ | En revanche, si votre chemin comporte un contour et un remplissage, | ||
+ | ••Supprimer le remplissage avant d' | ||
+ | ••Après avoir utilisé Contour en Chemin, dégroupez le résultat et supprimez le nouveau chemin contenant le remplissage (ou conservez-le simplement, si vous en avez besoin pour les étapes suivantes). | ||
+ | |||
+ | Malgré la confusion que ce changement a provoquée chez certains nouveaux utilisateurs, | ||
**Markers are another matter, however. While dealing with an unwanted fill just requires a couple of extra steps, getting the 0.92 structure when markers are in play requires several steps – multiplied by the number of markers – with no easy shortcuts. Although the new functionality may technically be more flexible, in practice there are few use-cases for separating the fill and stroke on a marker. It would have been nice to either have the old method available as a preference, or to include a function or extension that would make it easy to union deeply nested paths and recursively pop them out of their groups. | **Markers are another matter, however. While dealing with an unwanted fill just requires a couple of extra steps, getting the 0.92 structure when markers are in play requires several steps – multiplied by the number of markers – with no easy shortcuts. Although the new functionality may technically be more flexible, in practice there are few use-cases for separating the fill and stroke on a marker. It would have been nice to either have the old method available as a preference, or to include a function or extension that would make it easy to union deeply nested paths and recursively pop them out of their groups. | ||
Ligne 89: | Ligne 121: | ||
Next time, I’ll start to look at the changes to core drawing tools made with version 1.0. ** | Next time, I’ll start to look at the changes to core drawing tools made with version 1.0. ** | ||
+ | Mais les marqueurs sont une autre histoire. Alors que le traitement d'un remplissage indésirable ne nécessite que quelques étapes supplémentaires, | ||
+ | |||
+ | Ce qu'il faut retenir de tout cela est que Objet en Chemin se comporte toujours de la même manière, Contour en Chemin peut nécessiter une ou deux étapes supplémentaires si vous avez un remplissage, | ||
+ | |||
+ | La prochaine fois, je commencerai à examiner les modifications apportées aux outils de dessin de base dans la version 1.0. |
issue162/inkscape.1604844967.txt.gz · Dernière modification : 2020/11/08 15:16 de d52fr