Ich bin gerade dabei, das Tikz-Punktraster zu verstehen und habe es geschafft, mit dieser Methode Dreiecke zu zeichnen, aber gibt es eine Möglichkeit, durch direkte Eingabe von Linienlängen und Winkeln zu zeichnen?
Wenn ich beispielsweise Winkel von 125 Grad, 40 Grad und 15 Grad mit der Hypothenuse bei 15 cm haben möchte, wie würde ich dies festlegen?
Antwort1
Zum Vergleich hier eine alternative Methode mit Metapost. (Der Code ist ConTeXt-Code, Sie können mit dem gmp
Paket aber auch Metapost-Code in LaTeX verwenden.)
In Metapost können unbekannte numerische Werte mit dem whatever
Schlüsselwort angegeben werden. Metapost ermittelt den Wert von whatever
s, sodass alle Gleichungen erfüllt sind.
Beschriften wir die Eckpunkte des Dreiecks als A
, B
, und C
. Angenommen, wir möchten AB
parallel zur x-Achse zeichnen, AC
die Hypothenuse sein und den Winkel A
von 40 und den Winkel B
von 125 haben. (Der Winkel C
beträgt automatisch 15). Wir können dies in Metapost wie folgt angeben:
numeric angleA, angleB;
angleA := 40;
angleB := 125;
numeric AC;
AC := 15cm;
Wir wählen den Punkt A
als Ursprung. Dann C
ist der Punkt vollständig angegeben
pair A, B, C;
A := origin;
C := (AC,0) rotated angleA;
Um den Punkt anzugeben B
, geben wir zwei Gleichungen für an B
. Die erste ist, dass dies der Abstand von entlang der x-Achse B
sein sollte , d. h.AB
A
B = (whatever, 0);
Zweitens CB
sollte es in einem Winkel sein B
, d. h.
B = ((whatever,0) rotated -angleB) shifted C;
Metapost findet eine konsistente Lösung für diese beiden Spezifikationen. Hier ist der vollständige Code:
\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
was gibt
Antwort2
So was?
\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}
Antwort3
Kennen Sie Mathe?
Die Winkel-Längen-Beziehungen sind gegeben durch dieSinussatz.
Die Ausgabe
Der Code
\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}