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 gmp
paquete).
En Metapost, se pueden especificar valores numéricos desconocidos utilizando la whatever
palabra clave. Metapost calcula el valor de whatever
s para que se cumplan todas las ecuaciones.
Etiquetemos los vértices del triángulo como A
, B
y C
. Supongamos que queremos dibujar AB
para que sea paralelo al eje x, AC
que sea la hipotenusa, que el ángulo A
sea 40 y el ángulo B
sea 125. (El ángulo C
automáticamente será 15). Podemos especificar esto en Metapost como:
numeric angleA, angleB;
angleA := 40;
angleB := 125;
numeric AC;
AC := 15cm;
Elegimos el punto A
como origen. Entonces el punto C
está 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 B
debe ser a lo largo del eje x, es decir,AB
A
B = (whatever, 0);
En segundo lugar, CB
deberí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
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}
Respuesta3
¡Conoce tus matemáticas!
Las relaciones ángulo-longitud están dadas por laley de los senos.
La salida
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}