Ich lerne TikZ mit dem pgfmanual. Das angegebene Beispiel lautet wie folgt:
Folgendes habe ich bisher erreicht:
Der Code lautet wie folgt:
\documentclass{article}
\usepackage{tikz}
\tikzset{help lines/.style=very thin}
\tikzset{My Grid/.style={help lines,color=blue!50}}
\begin{document}
\begin{tikzpicture}
\draw[My Grid] (-4,-4) grid (4,4);
\draw (-5,0) node[left] {$(-5,0)$} -- (5,0) node[right] {$(5,0)$};
\draw (0,-5) node[below] {$(0,-5)$} -- (0,5) node[above] {$(0,5)$};
\draw (0,0) circle [radius=3cm];
\shadedraw[left color=gray, right color=green, draw=green!50!black] (0,0) -- (0.75,0) arc [start angle=0, end angle=30, radius=1cm] -- cycle;
\draw[red, very thick] (30:3cm) -- (2.6,0);
\draw [very thick,orange] (3,0) -- (3,1.7);
\end{tikzpicture}
\end{document}
Um den Schnittpunkt von Steigung und Tangente zu erreichen, verwendet pgfmanual das Konzept der Pfad- und Schnittpunktbibliothek, was sehr verwirrend ist.
Gibt es eine einfachere Möglichkeit, dem System mitzuteilen, dass es eine Linie von Punkt A zu sin(30) als Punkt B zeichnen und den Tangens des Winkels proportional zeichnen soll, anstatt direkte Zahlen zu verwenden?
Bitte schlagen Sie Alternativen zu Schnittpunkten, Polarkoordinaten und Pfaden vor. Denn das pgfmanual verwendet diese bereits, was schwer zu verstehen ist.
Antwort1
Da in cos(30)
und tan(30)
Klammern stehen, müssen diese Funktionen in geschweifte Klammern gesetzt werden.{}
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{angles,quotes}
\tikzset{help lines/.style=very thin}
\tikzset{My Grid/.style={help lines,color=blue!50}}
\begin{document}
\begin{tikzpicture}
\draw[My Grid] (-4,-4) grid (4,4);
\draw (-5,0) node[left] {$(-5,0)$} -- (5,0) node[right] {$(5,0)$};
\draw (0,-5) node[below] {$(0,-5)$} -- (0,5) node[above] {$(0,5)$};
\draw (0,0) circle [radius=3cm];
% \shadedraw[left color=gray, right color=green, draw=green!50!black]
% (0,0) -- (0.75,0) arc [start angle=0, end angle=30, radius=0.75cm] -- cycle;
\coordinate(O)at(0,0);
\draw[red, very thick] (30:3cm)coordinate(A)
--({3*cos(30)},0)coordinate(B);
\draw [very thick,orange] (3,0) -- (3,{3*tan(30)})coordinate(C);
\pic[fill=green!50!black,
angle radius=0.75cm,
angle eccentricity=1.2,
"\(\alpha\)"] {angle=B--O--A};
\draw (O)--(C);
\end{tikzpicture}
\end{document}
Antwort2
Hier ist eine Alternative zuHafids nette Antwort, und gehen Sie weiter in die Richtung, in der Sie begonnen haben. Sie müssen keine trigonometrischen Funktionen verwenden. Die Verwendung von Polarkoordinaten und Projektionen ist ausreichend.
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc,angles,quotes}
\tikzset{help lines/.style=very thin}
\tikzset{My Grid/.style={help lines,color=blue!50}}
\begin{document}
\begin{tikzpicture}
\draw[My Grid] (-4,-4) grid (4,4);
\draw (-5,0) node[left] {$(-5,0)$} -- (5,0) node[right] {$(5,0)$};
\draw (0,-5) node[below] {$(0,-5)$} -- (0,5) node[above] {$(0,5)$};
\draw (0,0) coordinate (O) circle [radius=3cm];
\draw[red, very thick] (30:3cm) coordinate (A)
% (30:3cm) is a polar coordinate with angle 30 (degrees) and radius 3cm
-- (0,0-|A) coordinate(Ax)
% (0,0-|30:3cm) is a point that has the x coordinate of A and y=0
% see https://tex.stackexchange.com/a/401429/121799 for more details
node[midway,left]{$\sin\alpha$};
\draw [very thick,orange] (3,0) -- (intersection cs:
first line={(O)--(A)},second line={(3,0)--(3,3)}) coordinate(A')
% (A') is at the intersections of the lines OA and the vertical line through (3,0)
node[midway,right]{$\tan\alpha$};
\pic[fill=green!50,angle radius=1cm,
angle eccentricity=0.6, "$\alpha$"] {angle=Ax--O--A};
% that's almost a 1-1 copy of what you can find on p. 560 of the manual
\draw (O) -- (A');
\draw[very thick,blue] (O) -- (Ax) node[midway,below]{$\cos\alpha$};
\end{tikzpicture}
\end{document}