4

I am learning TikZ with the pgfmanual. The example given is as follows:

enter image description here

I have achieved the following so far:

enter image description here

The code is as follows:

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

To achieve the intersection of the slope and tangent, pgfmanual uses the concept of path and intersections library which is very confusing.

Is there an easier way to tell the system to draw a line from point A to sin(30) as point B and to draw tangent of the angle proportionately instead of using direct numbers.

Please suggest alternative apart from intersections, polar coordinates and paths. Because the pgfmanual already uses them which is hard to understand.

5
  • May be If you specify exactly what is hard for you to understand someone will try to explain it to you Feb 23, 2019 at 8:14
  • @hafid The slope lines and connecting the tangent for the time being Feb 23, 2019 at 8:16
  • Do you need to use cos(30) and tan(30) to indicate point coordinates instead of (2.6,0) and (3,1.7) Feb 23, 2019 at 8:23
  • Yes @hafid. That is exactly the requirement. Feb 23, 2019 at 8:27
  • I think your approach is simpler than working with explicit sin and cos functions. E.g. the red line can be drawn like \draw[red, very thick] (30:3cm) -- (0,0-|30:3cm);, where the last coordinate is the projection of the first one on y=0.
    – user121799
    Feb 23, 2019 at 14:11

2 Answers 2

9

Since in cos(30) and tan(30) there are parentheses you must put these functions inside curly brackets {}

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

enter image description here

9
  • Will this ensure that the length is actual value when computed as well or plotted manually with pencil and graph? Feb 23, 2019 at 8:32
  • @subhamsoni I notice that the green angle is greeter than 30° I suppose you needed to be 30° Feb 23, 2019 at 8:38
  • I have mentioned end angle as 30. Is there anything I am missing Feb 23, 2019 at 8:39
  • @subhamsoni Yes you need the specify the correct radius 0.75 cm and not 1cm since the start point is (0.75,0). Also in Tikz there is another manner to draw angles. Feb 23, 2019 at 8:43
  • it would be great if you can share the other way because precision is always better. Feb 23, 2019 at 8:46
3

Here is an alternative to Hafid's nice answer, going further into the direction you started. You do not need to use any trigonometric function. Just using polar coordinates and projections is sufficient.

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

enter image description here

2
  • Thanks marmot . Can you please add comments to each line of the tikz code which will help me understand better. Especially the relationship between polar coordinates and projection Feb 23, 2019 at 15:12
  • 1
    @subhamsoni I added explanations in the comments in the code.
    – user121799
    Feb 23, 2019 at 15:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.