私はちょうど tikz ポイント グリッドを理解し始めており、この方法を使用して三角形を描くことができましたが、線の長さと角度を直接入力して描画する方法はありますか?
たとえば、斜辺が 15cm の 125 度、40 度、15 度の角度が必要な場合、どのように設定すればよいでしょうか。
答え1
比較のために、Metapost を使用する別の方法を示します。(コードは ConTeXt コードですが、パッケージを使用して LaTeX で metapost コードを使用することもできますgmp
)。
Metapost では、キーワードを使用して未知の数値を指定できます。Metapost は、すべての式が満たされるように swhatever
の値を計算します。whatever
三角形の頂点に、、とラベルを付けましょうA
。B
をx 軸に平行に、を斜辺に、 を40 度、 を125 度にC
描画するとします(角度は自動的に 15 になります)。 Metapost では、これを次のように指定できます。AB
AC
A
B
C
numeric angleA, angleB;
angleA := 40;
angleB := 125;
numeric AC;
AC := 15cm;
A
原点として点を選択します。すると点がC
完全に指定されます
pair A, B, C;
A := origin;
C := (AC,0) rotated angleA;
点 を指定するためにB
、 について2つの式を示しますB
。1つ目は、 がx軸に沿ったからの距離でB
あるべきであるということです。つまり、AB
A
B = (whatever, 0);
第二に、それはCB
角度をなしているべきであるB
、すなわち、
B = ((whatever,0) rotated -angleB) shifted C;
Metapost は、これら 2 つの仕様に対して一貫したソリューションを見つけ出します。完全なコードは次のとおりです。
\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
これにより
答え2
このような?
\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}
答え3
数学を知ってください!
角度と長さの関係は次のように表される。正弦の法則。
出力
コード
\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}