Je commence à dessiner avec TikZ en trois dimensions dans un endroit où la connexion n'est pas fameuse, ce qui n'aide pas à rechercher de la documentation sur internet.

J'ai du mal à piger la syntaxe de la chose ; spécifier un point de vue m'échappe totalement, par exemple.

Mais là n'est pas mon souci : dans le parallélépipède rectangle de l'ECM ci-dessous, je cherche à tracer, à partir de l'un des sommets supérieurs, une diagonale descendant de 10 degrés et s'interrompant à l'arête en vis-à-vis.

Je ne réussis pas à spécifier ses coordonnées. Qui saura m'aider ?

Ouvrir dans l'éditeur Overleaf
\documentclass[border = 8 mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{intersections}
\usetikzlibrary{positioning}
\usetikzlibrary{3d}
\begin{document}
\begin{tikzpicture}
  % ground
   \draw (0, 0, 0) -- (15, 0, 0) -- (15, 0, -10) -- (0, 0, -10) -- cycle ;
  % ceiling
   \draw (0, 10, 0) -- (15, 10, 0) -- (15, 10, -10) -- (0, 10, -10) -- cycle ;
   % vertical corners
   \draw[blue, dashed] (0, 0, 0) -- (0, 10, 0) ;
   \draw[blue, dashed] (15, 0, 0) -- (15, 10, 0) ;
   \draw[blue] (15, 0, -10) -- (15, 10, -10) ;
   \draw[blue, dashed] (0, 0, -10) -- (0, 10, -10) ;
   % diagonal
   \draw [red] (7.5, 10, -5) -- (xyz cylindrical cs:radius=1, latitude = 10, longitude = 90) ;
\end{tikzpicture}
\end{document}

PS : la ligne \draw [red] (7.5, 10, -5) -- (xyz cylindrical cs:radius=1, latitude = 10, longitude = 90) ; correspond à une piteuse tentative d'obtenir la diagonale descendante en question.


EDIT : une image illustrative.

Dans l'image ci-dessus, j'aimerais pouvoir spécifier que la ligne rouge présente un angle de 10 degrés avec la ligne bleue, et qu'elle s'interrompt dans l'angle du parallélépipède.

Posée 02 Mar '19, 19:21

Pathe's gravatar image

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

Modifiée 06 Mar '19, 12:07

Pouvez-vous faire un croquis à la main à quoi le résultat devrait ressembler?

(03 Mar '19, 19:19) samcarter samcarter's gravatar image

J'ai réalisé avec mes petits doigts un croquis TikZ.

(06 Mar '19, 12:04) Pathe ♦♦ Pathe's gravatar image

Je pense que la solution la plus simple est de calculer la hauteur de l'intersection :

Ouvrir dans l'éditeur Overleaf
\documentclass[border = 8 mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning}
\usetikzlibrary{3d}
\usetikzlibrary{calc}

\begin{document}
\begin{tikzpicture}

% ground
\begin{scope}[canvas is xz plane at y=0]
    \draw (0, 0) rectangle (15, -10);
\end{scope}

% ceiling
\begin{scope}[canvas is xz plane at y=10]
    \draw (0, 0) rectangle (15, -10);
\end{scope}

% vertical edges
\begin{scope}[canvas is xy plane at z=0]
    \draw[blue, dashed] (0, 0) -- (0, 10) ;
    \draw[blue, dashed] (15, 0) -- (15, 10) ;
\end{scope}
\begin{scope}[canvas is xy plane at z=-10]
    \draw[blue, dashed] (0, 0) -- (0, 10) ;
    \draw[blue, dashed] (15, 0) -- (15, 10) ;
\end{scope}

% blue diagonal
\begin{scope}[canvas is xz plane at y=10]
    \draw[blue] (0, 0) -- (15, -10);
\end{scope}

\draw[red] (0,10,0) -- ($(15,10,-10)+(0,{-1*sqrt(15*15+10*10)*tan(10)},0)$);

\end{tikzpicture}
\end{document}

alt text

Lien permanent

Publiée 06 Mar '19, 18:53

samcarter's gravatar image

samcarter
8.4k2817
Taux d'acceptation : 56%

Modifiée 06 Mar '19, 19:09

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.