Si j'ai la longueur de l'hypoténuse et celle d'un côté, comment puis-je construire un triangle rectangle en TikZ ? Je suis à peu près certain que c'est possible mais je n'y réussis pas. J'ai regardé du côté de pgfmath mais je ne réussis pas à incorporer des valeurs calculées dans mes figures.

Posée 28 Déc '16, 14:01

Pathe's gravatar image

Pathe ♦♦
1.8k237
Taux d'acceptation : 59%

Modifiée 28 Déc '16, 15:15


En TikZ, je ne sais pas. Mais en pstricks, c'est assez facile avec l'extension pst-eucl de simuler la construction à la règle et au compas, et j'imagine qu'il y avoir l'équivalent en TikZ. Voici donc ma solution, qui peut être compilée avec pdflatex pour peu qu'on ajoute au compilateur l'option --enable-write18 sous MiKTeX, ou -shell-escape sous TeX Live ou MacTeX:

Ouvrir dans l'éditeur
\documentclass[a4paper,10pt, svgnames, border=3pt]{standalone}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}%
\usepackage{lmodern}
\usepackage{pst-eucl, auto-pst-pdf}

\begin{document}

\begin{pspicture*}(-5,-5)(5,5)
\psset{dimen=middle, linejoin=1}
\pstGeonode[PointSymbol=none, PosAngle=-90](-4,0){B}(0,0){O}(4,0){C}(2.5,0){L}
\pstArcOAB[linewidth=0.4pt, linecolor=LightSteelBlue]{O}{C}{B}
\psdots[dotstyle=|, dotsize=5pt, linecolor=SteelBlue](B)(C)(L)
\psdot[linecolor=SteelBlue, linecolor=SteelBlue](O)
\pstInterCC[PosAngleA=50, RadiusA=\pstDistAB{B}{L}, CodeFigA=true, CodeFigAarc=false, CodeFigColor=OrangeRed! 50, linewidth=0.4pt, linecolor=OrangeRed]{B}{}{O}{B}{A}{}
\pspolygon[linecolor=OrangeRed](B)(A)(C)
\end{pspicture*}

\end{document} 
![alt text][1]

alt text

Lien permanent

Publiée 28 Déc '16, 17:48

Bernard's gravatar image

Bernard
1.4k14
Taux d'acceptation : 28%

Modifiée 30 Déc '16, 14:32

Pathe's gravatar image

Pathe ♦♦
1.8k237

Solution 1.

Une solution avec tikz basé sur \pgfmathparse et la règle de Pythagore.

Ouvrir dans l'éditeur
\begin{tikzpicture}
\coordinate (A) at (0,0);
\coordinate (B) at (3.2,0);
\pgfmathparse{sqrt((5.5)^2-(3.2)^2)}
\coordinate (C) at (0,\pgfmathresult);
\draw (A)--(B)--(C)--cycle;
\end{tikzpicture}

ou (plus courte, mais moins élégante!)

Ouvrir dans l'éditeur
\begin{tikzpicture}
\pgfmathparse{sqrt((5)^2-(3)^2)}
\edef\triangle{\pgfmathresult}
\draw (0,0)--(3,0)--(0,\triangle)--cycle;
\end{tikzpicture}

ECM

Ouvrir dans l'éditeur
\documentclass{article}
\usepackage{tikz}

\begin{document}

\begin{tikzpicture}
\coordinate (A) at (0,0);
\coordinate (B) at (3.2,0);
\pgfmathparse{sqrt((5.5)^2-(3.2)^2)}
\coordinate (C) at (0,\pgfmathresult);
\draw (A)--(B)--(C)--cycle;
\end{tikzpicture}
ou encore
\begin{tikzpicture}
\pgfmathparse{sqrt((5)^2-(3)^2)}
\edef\triangle{\pgfmathresult}
\draw (0,0)--(3,0)--(0,\triangle)--cycle;
\end{tikzpicture}

\end{document}

Solution 2.

Une autre solution (plus élégante). Voir section 13.5 Coordinate Calculations de la documentation.

Ouvrir dans l'éditeur
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc} 
\begin{document}

\begin{tikzpicture}
\draw (0,0)--(3.2,0)--($sqrt((5.4)^2-(3.2)^2)*(0,1)$)--cycle;
\end{tikzpicture}

\end{document}
Lien permanent

Publiée 28 Déc '16, 21:34

touhami's gravatar image

touhami
1.6k26
Taux d'acceptation : 40%

Modifiée 29 Déc '16, 19:54

1 - Malgré la très belle introduction à pstricks de Jean-Pierre Casteleyn, lors du stage LaTeX de Dunkerque, je n'utilise pas pstricks et reste fidèle à TikZ.

2 - Il s'agissait pour moi de calculer la position des sommets du triangle à partir de la longueur de l'hypoténuse et de celle d'un côté. La solution proposée par touhami ne répondait pas à cette demande, mais elle m'a appris à utiliser les fonctions \pgfmathparse et \pgfmathresult. Je propose le code suivant :

Ouvrir dans l'éditeur
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\thispagestyle{empty}

\begin{tikzpicture}[x = 1 mm, y = 1 mm, scale = 2]
    \clip (-3,-3) rectangle (20,20);
    % the axes
    \draw (0, -20) -- (0, 20);
    \draw (-20, 0) -- (30, 0);
    % the beam
    \draw (0,0) circle [radius=18mm];
    % from texnique
    % Hypotenuse = radius = 18
    % Opposite = half plate = 11
    \coordinate (A) at (0,0);
    \pgfmathparse{asin(11/18)}
    \coordinate (B) at (\pgfmathresult:18 |- 0,0);
    \coordinate (C) at (\pgfmathresult:18);
    \draw[red] (A) node[anchor=north east] {A}-- (B) node[anchor=north] {B} -- (C) node[anchor=south] {C} --cycle;
\end{tikzpicture}

\end{document}

J'ai calculé la position de C à partir de l'angle en A, que j'ai déterminé en divisant la longueur du côté opposé par celle de l'hypoténuse et en appliquant la fonction arc sinus au résultat.

J'ai ensuite déterminé la position du point B, qui se trouve à l'intersection (|-, en TikZ) de la verticale issue du point C et de l'axe des abscisses.

J'ai donc déterminé la position des points B & C. Je puis donc continuer mon travail. Vive texnique.fr et sa communauté !

Lien permanent

Publiée 30 Déc '16, 15:19

Pathe's gravatar image

Pathe ♦♦
1.8k237
Taux d'acceptation : 59%

Modifiée 30 Déc '16, 15:30

1

@Pathe La solution proposée par touhami ne répondait pas à cette demande. AMHA ce n'est pas vrai. On peut résoudre un exercice de mathématiques par des méthodes différentes. Ici j'ai choisi la méthode qui m'apparis simple. :-)

(30 Déc '16, 18:22) touhami touhami's gravatar image

Vous utilisez deux points (\coordinate (A) at (0,0); et \coordinate (B) at (3.2,0);) là où je ne disposais pas de cette information : je n'avais que deux longueurs. Voilà pourquoi j'ai fait cette remarque.

Mais je suis bien d'accord avec vous, on peut résoudre un exercice par plusieurs méthodes. Ce fil le montre, avec vos différentes propositions en TikZ et celle de Bernard en pstricks.

(30 Déc '16, 18:25) Pathe ♦♦ Pathe's gravatar image
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.

Mots-clés de la question :

×11
×1

Question posée : 28 Déc '16, 14:01

Question vue : 222 fois

Dernière mise à jour : 30 Déc '16, 18:27