Dessiner dans l'espace avec tikz

Bonjour,
dans le but d'illustrer la position relative de deux droites dans l'espace je voudrais utiliser tikz. J'utilise la bibliothèque 3d et j'arrive à mes fins, sauf pour placer correctement la section pointillée de la droite lorsqu'elle est cachée par le plan. 
Avez-vous des solutions satisfaisantes à ce problème ?
Merci

Réponses

  • Je suis persuadé qu'@AD saura te répondre ! ;-)

  • Bonjour,

    Tikz ne sait pas gérer ce qui est devant ou derrière.

    Il dessine dans l'ordre où on lui dit.

    \documentclass[12pt,tikz]{standalone}
    \usepackage{tikz-3dplot}
    \tdplotsetmaincoords{105}{-30}
    \begin{document}
    \begin{tikzpicture}[tdplot_main_coords,scale = 5]
      \coordinate (o) at (0,0,0) ;
      \draw [red,ultra thick] (o) -- (0,0,-1) ;
      \begin{scope}[canvas is xy plane at z=0]
        \filldraw [blue,fill opacity=.7] (-1,-1) rectangle (1,1) ;
      \end{scope}
      \draw [red,ultra thick] (o) -- (0,0,1) ;
    \end{tikzpicture}
    \end{document}


  • Merci marsup, j'ai envisagé aussi l'utilisation de l'opacité et donc de gérer l'ordre des différents éléments mais j'aimerais bien aussi pouvoir le faire sans opacité. Pour l'instant je me débrouille en tâtonnant à chaque mais c'est un peu fastidieux.
  • Bonjour Celine
    Malheureusement je n'ai pas de bonne solution !
    La meilleure consiste à ne pas chercher à mettre des pointillés, mais à colorer le plan, avec transparence (opacity=0.8 par exemple). Ainsi, on distingue facilement la partie cachée de la droite. Inconvénient, il faut tracer les différents objets dans le bon ordre et retracer partiellement certains objets. Conclusion, quand le dessin devient plus compliqué, c'est souvent difficile.

    Une autre solution, celle que tu as sans doute utilisée sur ton dessin, consiste à figer la perspective choisie et tracer séparément chaque segment de droite, soit en trait plein, soit en tiretés. C'est fastidieux et cela empêche de modifier ultérieurement l'angle de vue du schéma.
     
  • Merci AD, c'est effectivement la deuxième solution évoquée que j'utilise, je préfère la transparence à l'opacité ne serait-ce que parce ça passe mieux à la photocopie. Merci pour vos contributions, pour l'instant je reste donc avec ma solution "à la main".
  • \documentclass[12pt,tikz]{standalone}
    \usepackage{tikz-3dplot}
    \tdplotsetmaincoords{105}{-30}
    \begin{document}
    \begin{tikzpicture}[tdplot_main_coords,scale = 5]
      \coordinate (o) at (0,0,0) ;
      \draw [red,ultra thick] (o) -- (0,0,-1) ;
      \begin{scope}[canvas is xy plane at z=0]
        \fill [white] (-1,-1) rectangle (1,1) ;
        \filldraw [blue,fill opacity=.3] (-1,-1) rectangle (1,1) ;
      \end{scope}
      \draw [red,dashed,thick] (o) -- (0,0,-1) ;
      \draw [red,ultra thick] (o) -- (0,0,1) ;
    \end{tikzpicture}
    \end{document}

    Avec des pointillés, même si je ne trouve pas très joli. C'est vrai qu'au moins on est sûr que la photocopieuse sera contente !  :smile:
  • Merci marsup, ta deuxième solution m'a convaincue !
Connectez-vous ou Inscrivez-vous pour répondre.