J'utilise TikZ. Si je spécifie qu'une figure est dessinée avec un trait plus large, ses dimensions extérieures changent : on voit dans l'exemple ci-dessous que l'emploi du paramètre very thick rend le deuxième rectangle plus large que le premier.

Comment faire pour dessiner avec un trait large tout en conservant les dimensions d'une figure dessinée avec un trait standard ?

Ouvrir dans l'éditeur Overleaf
\documentclass[tikz, border = 2 mm]{standalone}
\begin{document}
\begin{tikzpicture}
  \draw[red, rounded corners = 2] (0, 0) rectangle (2, 1) ;
  \draw[red, very thick, rounded corners = 2, xshift = 5] (0, 0) rectangle (2, 1) ;
  \end{tikzpicture}
\end{document}

Je pose la question car je juxtapose des figures dessinées avec un trait fin avec d'autres dessinées avec un trait large, et elles se chevauchent.

Je n'ai malheureusement pas trouvé la réponse dans la documentation de TikZ.

Posée 07 Fév '19, 17:21

Pathe's gravatar image

Pathe ♦♦
7.5k29197245
Taux d'acceptation : 55%

Modifiée 07 Fév '19, 17:28

On trouve deux méthodes à la page 172 de la doc.

(07 Fév '19, 23:36) touhami touhami's gravatar image
1

@touhami Pourriez-vous dire le numéro de chapitre? Je pense que j'ai une autre version de la doc.

(11 Fév '19, 17:11) samcarter samcarter's gravatar image
1

@samcarter C'est le chapitre numéro 15 Actions on Paths et la sous-section 15.5.2 Graphic Parameters: Interior Rules.

(11 Fév '19, 17:44) touhami touhami's gravatar image

@touhami Merci ! C'est intéressant !

(11 Fév '19, 17:58) samcarter samcarter's gravatar image

Je suis sûr qu'il y a des solutions plus simples, mais vous pouvez créer des lignes deux fois plus épaisses et les limiter à la moitié intérieure :

Ouvrir dans l'éditeur Overleaf
\documentclass[tikz, border = 2 mm]{standalone}
\begin{document}
\begin{tikzpicture}

  \begin{scope}[xshift=5]
    \clip[rounded corners = 2] (0, 0) rectangle (2, 1) ;
    \draw[red, line width=1.6pt, rounded corners = 2] (0, 0) rectangle (2, 1) ;
  \end{scope}

  \begin{scope}
    \clip[rounded corners = 2] (0, 0) rectangle (2, 1) ;
    \draw[blue, line width=0.8pt, rounded corners = 2] (0, 0) rectangle (2, 1) ;
  \end{scope}

  \end{tikzpicture}
\end{document}

alt text

Lien permanent

Publiée 07 Fév '19, 18:25

samcarter's gravatar image

samcarter
8.2k2817
Taux d'acceptation : 57%

Modifiée 08 Fév '19, 04:03

Pathe's gravatar image

Pathe ♦♦
7.5k29197245

Le résultat est très surprenant : en toute logique, les traits rouges horizontaux, découpés par la fonction clip, devraient être plus fins que les traits rouges verticaux. Mais je n'ai pas l'impression que ce soit le cas. Pourquoi ?

(07 Fév '19, 23:14) Pathe ♦♦ Pathe's gravatar image

@Pathe : pourquoi pensez-vous que les traits rouges horizontaux devraient être plus fins que les traits rouges verticaux ? Pourriez-vous préciser votre cheminement de pensée ?

(07 Fév '19, 23:23) samcarter samcarter's gravatar image

Il me semble que la fonction clip découpe les figures ; d'où mon sentiment que son utilisation aurait provoqué la coupe du trait horizontal dans son épaisseur.

(08 Fév '19, 04:02) Pathe ♦♦ Pathe's gravatar image

@Pathe \clip est comme un moule, ici de la forme d'un rectangle.

(08 Fév '19, 13:54) touhami touhami's gravatar image
1

@Pathe Peut être l'image https://texnique.fr/osqa/upfiles/document_f6OkWhR.png peut montrer comment \clip marche.

(08 Fév '19, 17:10) samcarter samcarter's gravatar image

Mais bien sûr ! Élargir les deux lignes et les découper avec la fonction clip est une très bonne idée !

(11 Fév '19, 15:52) Pathe ♦♦ Pathe's gravatar image
Affichage de 5 parmi 6 Afficher 1 commentaire(s) en plus
Votre réponse
(dés)activer l'aperçu

Suivre cette question

Par courriel :

Une fois que vous serez enregistré, vous pourrez souscrire à n'importe quelle mise à jour ici

Par flux RSS :

Réponses

Réponses et commentaires

Bases de Markdown

  • *italique* ou _italique_
  • **gras** ou __gras__
  • Lien ::[texte](http://url.com/ "Titre ")
  • Image : ?![alt texte](/path/img.jpg "Titre ")
  • Liste numérotée : 1. Foo 2. Bar
  • Pour ajouter un passage à la ligne, ajoutez deux espaces à l'endroit où vous souhaitez que la ligne commence.
  • Les balises HTML de base sont également prises en charge.