Comment faire pour qu'une ligne dessinée par TikZ change d'apparence en traversant une zone déterminée ?

Posée 09 Nov '20, 16:49

Pathe's gravatar image

Pathe ♦♦
7.4k28196245
Taux d'acceptation : 55%

Modifiée 09 Nov '20, 16:54


L'important est de trouver les points d'entrée et de sortie dans la zone en question.

La librairie intersections a été créée pour cela.

Voici un ECM :

Ouvrir dans l'éditeur Overleaf
\documentclass[margin = 2 mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{intersections}

\begin{document}

\begin{tikzpicture}
% les points
\node (A) at (1, 0) {A} ;
\node (B) at (2, 0) {B} ;
\node (C) at (1, 3) {C} ;
\node (D) at (2, 3) {D} ;
\node (p) at (0, 1.6) {p} ;
\node (q) at (3, 1.4) {q} ;

% je nomme les segments de droite
\draw [name path = AC] (A) -- (C) ;
\draw [name path = BD] (B) -- (D) ;
\path [name path = pq] (p) -- (q) ;

% je nomme E et F les intersections entre le segment de droite pq
% et les lignes verticales AC et BD
\path [name intersections = {of = AC and pq, by = E}] ;
\path [name intersections = {of = BD and pq, by = F}] ;

% segment pE dessiné en trait plein
\draw[red] (p) -- (E) ;
% segment EF en pointillés
\draw[red, densely dotted] (E) -- (F) ;
% segment Fq en trait plein
\draw[red] (F) -- (q) ;
\end{tikzpicture}

\end{document}

La ligne rouge « passe » bien en pointillés entre les droites AC et BD.

Lien permanent

Publiée 09 Nov '20, 16:50

Pathe's gravatar image

Pathe ♦♦
7.4k28196245
Taux d'acceptation : 55%

Modifiée 09 Nov '20, 23:03

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.