Desenhar triângulos usando comprimentos e ângulos?

Desenhar triângulos usando comprimentos e ângulos?

Estou prestes a entender a grade de pontos tikz e consegui desenhar triângulos usando esse método, mas existe uma maneira de desenhar inserindo diretamente comprimentos e ângulos de linha?

por exemplo, se eu quisesse ângulos de 125 graus, 40 graus e 15 graus com a hipotenusa em 15 cm, como eu definiria isso?

Responder1

Para efeito de comparação, aqui está um método alternativo usando Metapost. (O código é código ConTeXt, mas você também pode usar código metapost em LaTeX usando o gmppacote).

No Metapost, valores numéricos desconhecidos podem ser especificados usando a whateverpalavra-chave. Metapost calcula o valor de whatevers para que todas as equações sejam satisfeitas.

Vamos rotular os vértices do triângulo como A, B, e C. Suponha que queiramos desenhar ABpara ser paralelo ao eixo x, ACpara ser a hipotenusa, e o ângulo Aser 40, e o ângulo Bser 125. (O ângulo Cserá automaticamente 15). Podemos especificar isso no Metapost como:

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

numeric AC;
AC := 15cm;

Escolhemos o ponto Acomo origem. Então o ponto Cé completamente especificado

pair A, B, C;

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

Para especificar o ponto B, damos duas equações para B. A primeira é que Bdeve ser ABa distância ao Alongo do eixo x, ou seja,

B = (whatever, 0);

Em segundo lugar, isso CBdeve estar em um ângulo B, ou seja,

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

Metapost descobre uma solução consistente para essas duas especificações. Aqui está o 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

que dá

insira a descrição da imagem aqui

Responder2

Assim?

\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}

insira a descrição da imagem aqui

Responder3

Conheça sua matemática!

As relações ângulo-comprimento são dadas porlei dos senos.

A saída

insira a descrição da imagem aqui

O 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}

informação relacionada