Comment faire avec TikZ pour dessiner une ligne qui commence pleine et devient traitillée ? Voici un ECM (ma courbe est bien plus complexe en réalité) : \documentclass[tikz, border = 2 mm]{standalone} \usetikzlibrary{arrows.meta} \begin{document} \begin{tikzpicture} \draw[red, very thick, rounded corners, -Stealth] (0, 0) -- (1, 0) -- (1, 1) -- (2, 1) -- (2, 2) [dashed] -- (0, 2) -- (0, 0.5) ; \end{tikzpicture} \end{document} Dans cet exemple, j'aimerais que la ligne commence pleine et devienne traitillée à partir point de coordonnées (0, 2). J'ai placé le paramètre |
\documentclass[tikz, border = 2 mm]{standalone} \usetikzlibrary{arrows.meta} \begin{document} \begin{tikzpicture} \draw[red, very thick, rounded corners] (0, 0) -- (1, 0) -- (1, 1) -- (2, 1) -- (2,2) -- (1.85,2) ; \draw[red, very thick, rounded corners, dashed, -Stealth] (1.8, 2) -- (0, 2) -- (0, 0.5) ; \end{tikzpicture} \end{document} |
Dans la doc de tikz, section 14 "Syntax for path specifications", il est précisé que certaines options s'appliquent à tout le "path" comme "color". Je crains que ce soit la même chose avec "dashed" et qu'il faille faire deux draw...
J'ai bien pensé aux deux
draw
; c'est d'ailleurs pour cette raison que j'ai rajouté le paramètrerounded corners
: si je crée deux courbes, l'une pleine, avant uncorner
, et l'autre traitillée, qui commence là et va plus loin, lecorner
en question n'est pasrounded
!Il faut répéter et décaler un peu les points, cf. la réponse que je propose. Si le code n'est pas ce qu'il y a de plus automatique, le résultat est correcte. Non ?
Certes, mais dans mon cas, décaler les points est complexe : il s'agit d'une courbe de Bézier. L'autre solution est de « dessiner » deux lignes identiques, l'une traitillée, l'autre non, et de ne rendre visible qu'une partie de chacune d'entre elles. Problème : je ne sais pas le faire.