Dans une figure TikZ, je dessine un carré dont les coins sont définis par des nœuds (nodes). À la différence d'un carré dont les coins sont définis par des coordonnées, les coins définis par des nœuds ne présentent pas une belle intersection, un peu comme si le paramètre Voici un ECM : Ouvrir dans l'éditeur Overleaf
\documentclass[tikz]{standalone} \begin{document} \begin{tikzpicture} \definecolor{white smoke}{rgb}{0.96, 0.96, 0.96} \tikzstyle{corner}= [outer sep = 0 pt, inner sep = 0 pt] % White smoke background to match % texnique.fr's code background color (#f5f5f5 in HTML) \filldraw[white smoke] (0, 0) rectangle (6, 6) ; % Outer square \draw[red, ultra thick] (1, 1) rectangle (5, 5) ; % Node 1 \node (n1) at (2, 4) [corner] {} ; % Node 2 \node (n2) at (4, 4) [corner] {} ; % Node 3 \node (n3) at (4, 2) [corner] {} ; % Node 4 \node (n4) at (2, 2) [corner] {} ; % Inner square \draw[ultra thick, green!50!black] (n1) -- (n2) -- (n3) -- (n4) -- (n1) -- cycle ; \end{tikzpicture} \end{document} Comment faire pour que les coins du carré vert aient le même aspect que ceux du carré rouge ? J'ai pourtant bien spécifié que les nœuds avaient un inner sep et un outer sep nuls ! Nota : cette vue est un détail de la figure obtenue avec le code ci-dessus. Posée 11 Sep '17, 02:33 Pathe ♦♦ |
Un nœud, même vide, a une certaine taille à moins de lui spécifier le contraire (il me semble que cela est possible). Le plus simple est de spécifier que le cycle doit se faire à partir du centre du nœud : : Ouvrir dans l'éditeur Overleaf
\documentclass[tikz]{standalone} \begin{document} \begin{tikzpicture} \definecolor{white smoke}{rgb}{0.96, 0.96, 0.96} \tikzstyle{corner}= [outer sep = 0 pt, inner sep = 0 pt] % White smoke background to match % texnique.fr's code background color (#f5f5f5 in HTML) \filldraw[white smoke] (0, 0) rectangle (6, 6) ; % Outer square \draw[red, ultra thick] (1, 1) rectangle (5, 5) ; % Node 1 \node (n1) at (2, 4) [corner] {} ; % Node 2 \node (n2) at (4, 4) [corner] {} ; % Node 3 \node (n3) at (4, 2) [corner] {} ; % Node 4 \node (n4) at (2, 2) [corner] {} ; % Inner square \draw[ultra thick, green!50!black] (n1.center) -- (n2.center) -- (n3.center) -- (n4.center) -- (n1.center) -- cycle ; \end{tikzpicture} \end{document} C'est mieux, mais comme les coins sont jointifs au centre du nœud, et que les traits sont épais, l'extérieur des angles du carré vert est toujours en escalier : on n'obtient toujours pas l'effet obtenu par
(11 Sep '17, 15:03)
Pathe ♦♦
Je ne comprends pas, avec ce code les traits sont parfaitement jointifs, je n'ai aucun effet "escalier" (même avec zoom x6000), j'édite mon message pour rajouter une image de ce que j'obtiens. Idem en faisant un triangle, je ne vois rien qui cloche.
(11 Sep '17, 18:09)
Nikopol
En effet : dans mon code j'avais omis un
au lieu de
La différence est édifiante.
(12 Sep '17, 03:01)
Pathe ♦♦
|
Il doit bien y avoir en TikZ l'équivalent de
linejoin=1
, comme chez pstricks ?Normalement, c'est
--cycle
; mais là, il s'agit de relier des nœuds et non des coordonnées : je constate à mes dépens que TikZ se comporte différemment dans ce cas-là.