¿Dibujar triángulos usando longitudes y ángulos?

¿Dibujar triángulos usando longitudes y ángulos?

Estoy a punto de entender la cuadrícula de puntos tikz y he logrado dibujar triángulos usando este método, pero ¿hay alguna manera de dibujar ingresando directamente longitudes de línea y ángulos?

Por ejemplo, si quisiera ángulos de 125 grados, 40 grados y 15 grados con la hipotenusa a 15 cm, ¿cómo lo plantearía?

Respuesta1

A modo de comparación, aquí hay un método alternativo que utiliza Metapost. (El código es código ConTeXt, pero también puedes usar código metapost en LaTeX usando el gmppaquete).

En Metapost, se pueden especificar valores numéricos desconocidos utilizando la whateverpalabra clave. Metapost calcula el valor de whatevers para que se cumplan todas las ecuaciones.

Etiquetemos los vértices del triángulo como A, By C. Supongamos que queremos dibujar ABpara que sea paralelo al eje x, ACque sea la hipotenusa, que el ángulo Asea 40 y el ángulo Bsea 125. (El ángulo Cautomáticamente será 15). Podemos especificar esto en Metapost como:

numeric angleA, angleB;
angleA := 40;
angleB := 125;

numeric AC;
AC := 15cm;

Elegimos el punto Acomo origen. Entonces el punto Cestá completamente especificado.

pair A, B, C;

A := origin;
C := (AC,0) rotated angleA;

Para especificar el punto B, damos dos ecuaciones para B. Primero, la distancia Bdebe ser a lo largo del eje x, es decir,ABA

B = (whatever, 0);

En segundo lugar, CBdebería estar en ángulo B, es decir,

B = ((whatever,0) rotated -angleB) shifted C;

Metapost encuentra una solución consistente para estas dos especificaciones. Aquí está el código completo:

\starttext
\startMPpage[offset=3mm]
  begingroup;
    numeric angleA, angleB, angleC;
    angleA := 40;
    angleB := 125;

    numeric AC;
    AC := 15cm;

    pair A, B, C;

    A := origin;
    C := (AC,0) rotated angleA;

    % Let Metapost figure out B.
    B = (whatever, 0);
    B = ((whatever,0) rotated -angleB) shifted C;

    path triangle ;
    triangle := A -- B -- C --cycle;

    draw triangle;

    pair c; c := center triangle;

    freedotlabel("$A$", A, c);
    freedotlabel("$B$", B, c);
    freedotlabel("$C$", C, c);

  endgroup;
\stopMPpage
\stoptext

lo que da

ingrese la descripción de la imagen aquí

Respuesta2

¿Como esto?

\documentclass[margin=1cm]{standalone}

\usepackage{tikz}
\usetikzlibrary{intersections}

\begin{document}
  \begin{tikzpicture}
  \def\angf{40} %First angle
  \def\angs{125} %Second angle
  \def\hypo{15} %Hypotenus
  \coordinate (O) at (0,0);
  \draw[name path=line 1] (O) --++ (\angf:\hypo) coordinate (A);
  \path[name path=line 2] (O) --++ (0:2\hypo);
  \path[name path=line 3] (A) --++ (-\angs:2\hypo);
  \path [name intersections={of=line 2 and line 3,by=E}];
  \pgfresetboundingbox
  \draw (O)--(E)--(A);
  \end{tikzpicture}
\end{document}

ingrese la descripción de la imagen aquí

Respuesta3

¡Conoce tus matemáticas!

Las relaciones ángulo-longitud están dadas por laley de los senos.

La salida

ingrese la descripción de la imagen aquí

El código

\documentclass[12pt,tikz]{standalone}
\begin{document}
\begin{tikzpicture}[scale=.5]
  % "hypothenuse"
  \def\A{15}
  % the angles
  \def\angA{125}
  \def\angB{40}
  \pgfmathsetmacro{\angC}{180-\angA-\angB}
  % the law of sines
  \pgfmathsetmacro{\d}{\A/sin(\angA)}
  \pgfmathsetmacro{\C}{\d*sin(\angC)}
  \draw (0,0) -- (\angB:\A) -- (0:\C) -- cycle;
\end{tikzpicture}
\end{document}

información relacionada