Outils pour utilisateurs

Outils du site


issue155:inkscape

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
issue155:inkscape [2020/04/09 11:24]
auntiee
issue155:inkscape [2020/04/09 18:43] (Version actuelle)
andre_domenech
Ligne 11: Ligne 11:
 Consider the paths below. The one on the left is just a simple U-shaped filled path. Nothing special, no sneaky tricks. Just 10 nodes forming a shape with a couple of arms. The shape on the right is just a duplicate of the first one, with the end of the left arm moved to the right, and the end of the right arm moved to the left, so the arms cross each other. No nodes were added or removed, they were just moved around a little.** Consider the paths below. The one on the left is just a simple U-shaped filled path. Nothing special, no sneaky tricks. Just 10 nodes forming a shape with a couple of arms. The shape on the right is just a duplicate of the first one, with the end of the left arm moved to the right, and the end of the right arm moved to the left, so the arms cross each other. No nodes were added or removed, they were just moved around a little.**
  
-Pour comprendre l'​effet de ces tâches ​- qui sont en fait une paire de boutons radio mutuellement exclusifs - sur vos objets, nous aurons besoin d'un chemin pour les tester. Cependant, pas n'​importe quel chemin. Ces boutons n'ont d'​effet que sur les chemins qui, soit s'​auto-croisent,​ soit contiennent des sous-chemins. Prenons le premier pour commencer : qu'​est-ce que j'​entends par « qui s'​auto-croisent » ?+Pour comprendre l'​effet de ces taches ​- qui sont en fait une paire de boutons radio mutuellement exclusifs - sur vos objets, nous aurons besoin d'un chemin pour les tester. Cependant, pas n'​importe quel chemin. Ces boutons n'ont d'​effet que sur les chemins qui, soit s'​auto-croisent,​ soit contiennent des sous-chemins. Prenons le premier pour commencer : qu'​est-ce que j'​entends par « qui s'​auto-croisent » ?
  
 Prenez les chemins ci-dessous. Celui de gauche est un simple chemin rempli en forme de U. Rien de spécial, pas de truc insidieux. Juste 10 nœuds donnant une forme avec deux bras. La forme de droite n'est que la copie de la première, avec la terminaison gauche déplacée sur la droite et la fin du bras droit déplacé à gauche, de sorte que les bras se croisent. Aucun nœud n'a été ajouté ou enlevé ; ils ont juste été un peu déplacés. Prenez les chemins ci-dessous. Celui de gauche est un simple chemin rempli en forme de U. Rien de spécial, pas de truc insidieux. Juste 10 nœuds donnant une forme avec deux bras. La forme de droite n'est que la copie de la première, avec la terminaison gauche déplacée sur la droite et la fin du bras droit déplacé à gauche, de sorte que les bras se croisent. Aucun nœud n'a été ajouté ou enlevé ; ils ont juste été un peu déplacés.
Ligne 19: Ligne 19:
 Turning on the stroke and reducing the fill opacity makes this a little clearer:** Turning on the stroke and reducing the fill opacity makes this a little clearer:**
  
-La seconde forme est un chemin qui s'​auto-croise. C'est un chemin fermé qui a été dessiné de sorte qu'il se croise lui-même ; le mot « croise » porte un risque de mauvaise interprétation dans ce cas. Souvenez-vous qu'​Inkscape est un programme de dessin en 2D, sans aucune notion de troisième dimension. Aussi, en faisant cette forme, je n'ai pas vraiment passé un bras au-dessus de l'​autre,​ comme je l'aurai fait en créant cette forme avec un morceau de ficelle. J'ai plutôt fait un déplacement de l'un « à travers » l'​autre,​ dans le même plan 2D. Aucun des bras n'est au-dessus de l'​autre. Aucun ne « croise » l'​autre. À l'​inverse,​ la forme résultante se coupe avec elle-même.+La seconde forme est un chemin qui s'​auto-croise. C'est un chemin fermé qui a été dessiné de sorte qu'il se croise lui-même ; le mot « croise » porte un risque de mauvaise interprétation dans ce cas. Souvenez-vous qu'​Inkscape est un programme de dessin en 2D, sans aucune notion de troisième dimension. Aussi, en faisant cette forme, je n'ai pas vraiment passé un bras au-dessus de l'​autre,​ comme je l'aurais ​fait en créant cette forme avec un morceau de ficelle. J'ai plutôt fait un déplacement de l'un « à travers » l'​autre,​ dans le même plan 2D. Aucun des bras n'est au-dessus de l'​autre. Aucun ne « croise » l'​autre. À l'​inverse,​ la forme résultante se coupe avec elle-même.
  
 En activant le contour et en diminuant l'​opacité du remplissage,​ ça devient un peu plus clair. En activant le contour et en diminuant l'​opacité du remplissage,​ ça devient un peu plus clair.
Ligne 35: Ligne 35:
 The basic U-shaped path remains unaffected. It’s not a self-intersecting path, and it doesn’t contain any sub-paths, so the radio buttons have no effect. All the others, however, have no fill rendered in the intersecting parts. The stroke is still drawn, but the fill isn’t.** The basic U-shaped path remains unaffected. It’s not a self-intersecting path, and it doesn’t contain any sub-paths, so the radio buttons have no effect. All the others, however, have no fill rendered in the intersecting parts. The stroke is still drawn, but the fill isn’t.**
  
-Maintenant que tout est clair sur ce qu'est un chemin qui s'​auto-croise,​ regardons comment ils sont affectés par les boutons radio informes. La première chose à noter, c'est que les images jusqu'​à maintenant ont toujours été prises avec le second bouton sélectionné ​celui qui est complètement rempli. Appuyez sur le premier bouton et vous obtenez ceci :+Maintenant que tout est clair sur ce qu'est un chemin qui s'​auto-croise,​ regardons comment ils sont affectés par les boutons radio informes. La première chose à noter, c'est que les images jusqu'​à maintenant ont toujours été prises avec le second bouton sélectionnécelui qui est complètement rempli. Appuyez sur le premier bouton et vous obtenez ceci :
  
 La forme de base en U reste inchangée. Ce n'est pas un chemin qui s'​auto-croise et il ne contient aucun sous-chemin ; les boutons radio n'ont donc aucun effet. Cependant, tous les autres n'ont plus de remplissage affiché dans les zones de croisement. Le contour est toujours dessiné, mais pas le remplissage. La forme de base en U reste inchangée. Ce n'est pas un chemin qui s'​auto-croise et il ne contient aucun sous-chemin ; les boutons radio n'ont donc aucun effet. Cependant, tous les autres n'ont plus de remplissage affiché dans les zones de croisement. Le contour est toujours dessiné, mais pas le remplissage.
Ligne 46: Ligne 46:
 • Path > Combine to create a complex path, made up of two sub-paths.** • Path > Combine to create a complex path, made up of two sub-paths.**
  
-Ce comportement est, au début, un peu troublant. Il est sûr que les parties qui se croisent sont dans la forme, aussi elles devraient être remplies, non ? Malheureusement,​ notre idée intuitive de dedans-dehors ne s'​applique pas toujours dans le monde du dessin informatique. Au lieu de ça, il y a plusieurs règles ou heuristiques pour déterminer si un point est dans ou hors d'un forme et les boutons informes sont utilisés pour passer de l'une à l'​autre des règles. Regardons les chemins avec des sous-chemins pour essayer d'​expliquer pourquoi ce choix est nécessaire.+Ce comportement est, au début, un peu troublant. Il est sûr que les parties qui se croisent sont dans la forme, aussi elles devraient être remplies, non ? Malheureusement,​ notre idée intuitive de dedans-dehors ne s'​applique pas toujours dans le monde du dessin informatique. Au lieu de ça, il y a plusieurs règles ou heuristiques pour déterminer si un point est dans ou hors d'une formeet les boutons informes sont utilisés pour passer de l'une à l'​autre des règles. Regardons les chemins avec des sous-chemins pour essayer d'​expliquer pourquoi ce choix est nécessaire.
  
 Quand nous regardons les formes auto-croisées ci-dessus, il est assez évident que l'​option du remplissage complet (deuxième bouton) est le bon choix la plupart du temps. Imaginez que vous essayez de dessiner une forme de huit, pour découvrir que la partie où la forme s'​auto-croise a un remplissage indéfini. Il est clairement mieux d'​utiliser la seconde option, aussi nous nous assurerons qu'​elle est sélectionnée. Maintenant, nous allons dessiner un cercle avec un trou dedans. Il y a plusieurs façons d'y arriver, mais je vais faire exprès d'​utiliser une méthode très spéciale : Quand nous regardons les formes auto-croisées ci-dessus, il est assez évident que l'​option du remplissage complet (deuxième bouton) est le bon choix la plupart du temps. Imaginez que vous essayez de dessiner une forme de huit, pour découvrir que la partie où la forme s'​auto-croise a un remplissage indéfini. Il est clairement mieux d'​utiliser la seconde option, aussi nous nous assurerons qu'​elle est sélectionnée. Maintenant, nous allons dessiner un cercle avec un trou dedans. Il y a plusieurs façons d'y arriver, mais je vais faire exprès d'​utiliser une méthode très spéciale :
Ligne 61: Ligne 61:
 Dans l'​image ci-dessus, vous pouvez voir deux formes séparées sur la gauche, et le résultat de leur combinaison au milieu. Le « trou » dans la forme est rempli - pas vraiment ce que nous recherchions. Cependant, l'​appui sur le premier bouton nous donne le résultant attendu, comme nous le voyons sur la version de droite. Dans l'​image ci-dessus, vous pouvez voir deux formes séparées sur la gauche, et le résultat de leur combinaison au milieu. Le « trou » dans la forme est rempli - pas vraiment ce que nous recherchions. Cependant, l'​appui sur le premier bouton nous donne le résultant attendu, comme nous le voyons sur la version de droite.
  
-Maintenant, nous obtenons ​un règle empirique simple : utiliser le bouton de gauche pour les chemins avec des sous-chemins et le bouton de droite pour les chemins qui s'​auto-croisent. Mais que se passe-t-il si nous avons un chemin avec à la fois un auto-croisement et un sous-chemin décrivant une découpe ? Quelque chose comme cette bizarre pièce de joaillerie ou symbole alien, montrée telle qu'​elle apparaît en sélectionnant l'un ou l'​autre des boutons :+Maintenant, nous obtenons ​une règle empirique simple : utiliser le bouton de gauche pour les chemins avec des sous-chemins et le bouton de droite pour les chemins qui s'​auto-croisent. Mais que se passe-t-il si nous avons un chemin avec à la fois un auto-croisement et un sous-chemin décrivant une découpe ? Quelque chose comme cette bizarre pièce de joaillerie ou symbole alien, montrée telle qu'​elle apparaît en sélectionnant l'un ou l'​autre des boutons :
  
 Sur la gauche, le problème est l'​absence de remplissage dans la partie de l'​auto-croisement,​ mais le trou est correct. Avec le bouton de droite, nous obtenons un remplissage de la partie auto-croisée,​ mais pas de trou. Y a-t-il un moyen d'​obtenir le meilleur des deux solutions ? Sur la gauche, le problème est l'​absence de remplissage dans la partie de l'​auto-croisement,​ mais le trou est correct. Avec le bouton de droite, nous obtenons un remplissage de la partie auto-croisée,​ mais pas de trou. Y a-t-il un moyen d'​obtenir le meilleur des deux solutions ?
Ligne 76: Ligne 76:
 La réponse est évidemment « oui », mais pour y arriver, il est préférable de comprendre ce que sont les deux heuristiques entre lesquelles nous basculons. Le premier bouton a une info-bulle qui dit « Tout auto-croisement ou sous-chemin crée un trou dans le remplissage » et elle est nommée la règle « pair-impair ». L'​heuristique de celle-ci est plutôt simple : La réponse est évidemment « oui », mais pour y arriver, il est préférable de comprendre ce que sont les deux heuristiques entre lesquelles nous basculons. Le premier bouton a une info-bulle qui dit « Tout auto-croisement ou sous-chemin crée un trou dans le remplissage » et elle est nommée la règle « pair-impair ». L'​heuristique de celle-ci est plutôt simple :
 ••Sélectionner un point de la forme. ••Sélectionner un point de la forme.
-••Dessiner une ligne droite imaginaire à partir de ce point de la forme dans une direction quelconque+••Dessiner une ligne droite imaginaire à partir de ce point de la forme dans une direction quelconque.
 ••Compter les points de croisement, en commençant à zéro. ••Compter les points de croisement, en commençant à zéro.
-••Ajouter un au compteur chaque fois que la ligne croise une limite de chemin ou de sous-chemin .+••Ajouter un au compteur chaque fois que la ligne croise une limite de chemin ou de sous-chemin.
 ••Si le compte final est pair, le point était en dehors de la forme. Si le compte est impair, le point était à l'​intérieur de la forme. ••Si le compte final est pair, le point était en dehors de la forme. Si le compte est impair, le point était à l'​intérieur de la forme.
  
Ligne 90: Ligne 90:
 • If the final count is zero the point is outside the shape, otherwise it is inside.** • If the final count is zero the point is outside the shape, otherwise it is inside.**
  
-L'​info-bulle du second bouton dit « le remplissage est solide sauf si un sous chemin est en sens inverse » et elle s'​appelle une règle du « non-zéro » ou de « l'​enroulement ». L'​heuristique se base sur le fait que chaque sous-chemin possède une direction propre,et fonctionne ainsi :+L'​info-bulle du second bouton dit « le remplissage est solide sauf si un sous-chemin est en sens inverse » et elle s'​appelle une règle du « non-zéro » ou de « l'​enroulement ». L'​heuristique se base sur le fait que chaque sous-chemin possède une direction propre, et fonctionne ainsi :
 ••Sélectionner un point dans la forme. ••Sélectionner un point dans la forme.
-••Dessiner une ligne droite imaginaire à partir de ce point de la forme dans une direction queconque +••Dessiner une ligne droite imaginaire à partir de ce point de la forme dans une direction queconque. 
-••Faire le compte des enroulements en commençant à zéro+••Faire le compte des enroulements en commençant à zéro.
 ••Chaque fois que la ligne croise un chemin ou un sous-chemin,​ ajouter un au compteur si le chemin coupe la ligne de la gauche vers la droite (dans le sens horaire, vu du point) ou soustraire un si le chemin la coupe de la droite vers la gauche (anti-horaire). ••Chaque fois que la ligne croise un chemin ou un sous-chemin,​ ajouter un au compteur si le chemin coupe la ligne de la gauche vers la droite (dans le sens horaire, vu du point) ou soustraire un si le chemin la coupe de la droite vers la gauche (anti-horaire).
 ••Si le résultat final est zéro, le point est en dehors de la forme ; autrement, il est interne. ••Si le résultat final est zéro, le point est en dehors de la forme ; autrement, il est interne.
Ligne 102: Ligne 102:
 • Use Path > Reverse to reverse the order of the nodes in the sub-path without changing the shape.** • Use Path > Reverse to reverse the order of the nodes in the sub-path without changing the shape.**
  
-À partir de cet algorithme et de la mention « en sens inverse » de l'​info-bulle ​vous avez peut-être déjà déterminé que l'​utilisation du deuxième bouton informe (non-zéro) vous permet de passer de sous-chemins remplis ou vides en inversant le sens des nœuds. Heureusement pour nous, Inkscape facilite cela :+À partir de cet algorithme et de la mention « en sens inverse » de l'​info-bullevous avez peut-être déjà déterminé que l'​utilisation du deuxième bouton informe (non-zéro) vous permet de passer de sous-chemins remplis ou vides en inversant le sens des nœuds. Heureusement pour nous, Inkscape facilite cela :
 ••Sélectionnez le chemin composite et passez sur l'​outil Nœuds (F2). ••Sélectionnez le chemin composite et passez sur l'​outil Nœuds (F2).
 ••Sélectionnez un nœud du sous-chemin. ••Sélectionnez un nœud du sous-chemin.
Ligne 111: Ligne 111:
 Unfortunately this simple approach doesn’t appear to work in the beta of Inkscape v1.0, where the Path > Reverse operation reverses the entire path rather than the selected sub-path. The only option in this case is to use Path > Break Apart to split the shape down into its constituent parts, then use Path > Reverse on just one of those paths, then finally use Path > Combine to re-combine them back into your original complex path. This is a definite step backwards in the workflow, so I will be filing a bug about this on the Inkscape issue tracker.** Unfortunately this simple approach doesn’t appear to work in the beta of Inkscape v1.0, where the Path > Reverse operation reverses the entire path rather than the selected sub-path. The only option in this case is to use Path > Break Apart to split the shape down into its constituent parts, then use Path > Reverse on just one of those paths, then finally use Path > Combine to re-combine them back into your original complex path. This is a definite step backwards in the workflow, so I will be filing a bug about this on the Inkscape issue tracker.**
  
-Vous pouvez voir l'​effet de cette approche dans l'​image suivante. Dans ce cas, j'ai aussi ajouté des marques ​flèchées ​aux chemins, pour clarifier ce qui se passe. La première image est notre chemin initial, créé en combinant un ovale avec une forme auto-croisante. Vous pouvez voir grâce aux flèches que le sous-chemin circule dans le sens anti-horaire. Dans la seconde image, j'ai inversé la direction du sous-chemin ; les flèches sont dirigées dans le sens opposé, et la forme a un trou pour le sous-chemin et pas pour l'​auto-croisement.+Vous pouvez voir l'​effet de cette approche dans l'​image suivante. Dans ce cas, j'ai aussi ajouté des marques ​fléchées ​aux chemins, pour clarifier ce qui se passe. La première image est notre chemin initial, créé en combinant un ovale avec une forme auto-croisante. Vous pouvez voir grâce aux flèches que le sous-chemin circule dans le sens anti-horaire. Dans la seconde image, j'ai inversé la direction du sous-chemin ; les flèches sont dirigées dans le sens opposé, et la forme a un trou pour le sous-chemin et pas pour l'​auto-croisement.
  
 Malheureusement,​ cette approche simple ne semble pas fonctionner dans la bêta d'​Inkscape 1.0 où l'​opération Chemin > Inverser inverse tout le chemin plutôt que le sous-chemin sélectionné. Dans ce cas, la seule possibilité est d'​utiliser Chemin > Séparer pour séparer les parties constituantes de la forme, puis Chemin > Inverser sur un seul de ces chemins et, enfin, Chemin > Combiner pour revenir au chemin complexe d'​origine. C'est vraiment une régression dans l'​enchaînement des tâches ; aussi, je remplirai un rapport de bogue à ce sujet sur le « tracker de problème » d'​Inkscape. Malheureusement,​ cette approche simple ne semble pas fonctionner dans la bêta d'​Inkscape 1.0 où l'​opération Chemin > Inverser inverse tout le chemin plutôt que le sous-chemin sélectionné. Dans ce cas, la seule possibilité est d'​utiliser Chemin > Séparer pour séparer les parties constituantes de la forme, puis Chemin > Inverser sur un seul de ces chemins et, enfin, Chemin > Combiner pour revenir au chemin complexe d'​origine. C'est vraiment une régression dans l'​enchaînement des tâches ; aussi, je remplirai un rapport de bogue à ce sujet sur le « tracker de problème » d'​Inkscape.
Ligne 121: Ligne 121:
 Cette approche d'​inverser le chemin fonctionne pour les formes simples où l'​enfouissement des sous-chemins n'est pas trop profond. Pour les arrangements plus complexes, vous devrez peut-être inverser plus d'un chemin pour obtenir l'​effet désiré. Et si d'​autres intersections existent entre les sous-chemins,​ ou qu'ils aient leurs propres auto-croisements, ​ vous pourriez ne jamais obtenir le remplissage que vous voulez, quelle que soit la façon de vous y prendre. Dans ces cas-là, vous pourriez trouver que le plus facile est d'​utiliser le premier pâté (pair-impair) pour remplir toute la forme, puis de créer votre arrangement compliqué de trous par une découpe avec un chemin judicieusement placé. Cette approche d'​inverser le chemin fonctionne pour les formes simples où l'​enfouissement des sous-chemins n'est pas trop profond. Pour les arrangements plus complexes, vous devrez peut-être inverser plus d'un chemin pour obtenir l'​effet désiré. Et si d'​autres intersections existent entre les sous-chemins,​ ou qu'ils aient leurs propres auto-croisements, ​ vous pourriez ne jamais obtenir le remplissage que vous voulez, quelle que soit la façon de vous y prendre. Dans ces cas-là, vous pourriez trouver que le plus facile est d'​utiliser le premier pâté (pair-impair) pour remplir toute la forme, puis de créer votre arrangement compliqué de trous par une découpe avec un chemin judicieusement placé.
  
-Il est intéressant de noter que vous pourriez ne jamais tomber sur ce problème. Découper un trou dans une forme est un action plus classiquement faite avec Chemin > Différence qu'​avec Chemin > Combiner, et la première a en général pour résultat un sous-chemin qui va dans le bonne direction. Mais il faut mieux connaître ses boutons informes et savoir comment ils fonctionnent,​ juste au cas où vous vous trouveriez devant un chemin qui contient des trous et ou des remplissages inexplicables là où ils ne devraient pas être.+Il est intéressant de noter que vous pourriez ne jamais tomber sur ce problème. Découper un trou dans une forme est une action plus classiquement faite avec Chemin > Différence qu'​avec Chemin > Combiner, et la première a en général pour résultat un sous-chemin qui va dans la bonne direction. Mais il faut mieux connaître ses boutons informes et savoir comment ils fonctionnent,​ juste au cas où vous vous trouveriez devant un chemin qui contient des trous et ou des remplissages inexplicables là où ils ne devraient pas être.
  
issue155/inkscape.txt · Dernière modification: 2020/04/09 18:43 par andre_domenech