\documentclass[tikz,border=10pt,multi]{standalone}
\usepackage{amsmath}
\usepackage{amsfonts}
\usetikzlibrary{calc,arrows.meta,positioning}
\usepackage{pgfplots}
\pgfplotsset{compat=1.11}
\begin{document}
\begin{tikzpicture}
\draw [-{Latex[]}, gray] (-3.5,0) -- (4.5,0) node [below right] {$x$};
\draw [-{Latex[]}, gray] (0,-1.0) -- (0,5.5) node [above right] {$y$};
%A triangle is drawn on the Cartesian plane. One side of the triangle is along
%the positive x-axis, and another side of the triangle is drawn in Quadrant II.
\coordinate (O) at (0,0);
\coordinate (A) at (3.5,0);
\coordinate (B) at (120:5);
\draw [thick] (O) node [below right] {$O (0, 0)$} -- (A) -- (B) -- cycle;
% The label for A is typeset.
\node at (3.5,-2.5mm){$A (a, 0)$};
\draw[fill] (A) circle (1.5pt);
\draw[fill] (B) circle (1.5pt);
\draw[fill] (O) circle (1.5pt);
% The label for B is typeset.
\coordinate (label_C_left) at ($(B)!-4mm!(A)$);
\coordinate (label_C_right) at ($(B)!-4mm!(O)$);
\coordinate (label_C) at ($(label_C_left)!0.5!(label_C_right)$);
\node at ($(B)!3.5mm!(label_C)$) [right] {$B (b\cos\theta, b\sin\theta)$};
% Angles are drawn for $\theta$ and its supplement.
\draw[draw=blue] (O) ++(120:4mm) arc (120:0:4mm);
\coordinate (label_for_theta) at (60:6mm);
\node[font=\footnotesize] at (label_for_theta){$\theta$};
\draw[draw=blue,dash dot] (O) ++(180:6mm) arc (180:120:6mm);
\coordinate (label_for_supplement_to_theta) at (160:10.5mm);
\node[font=\footnotesize] at (label_for_supplement_to_theta){$\pi - \theta$};
% A right-angle mark is drawn.
\coordinate (U) at ($(-2.5,0)!3mm!45:(O)$);
\draw[dash dot] (U) -- ($(-2.5,0)!(U)!(O)$);
\draw[dash dot] (U) -- ($(-2.5,0)!(U)!(B)$);
\draw[dashed] (B) -- (-2.5,0);
% Braces indicating the distances that B is from the axes are typeset. To
% give them the appearance of being typeset over the axes, they are first
% typeset in white with a line width of 2pt, which is 10 times the thickness
% of the brace that is actually typeset.
\draw[draw=white,line width=4pt,decorate,decoration={brace,raise=5pt,amplitude=5pt}] (-2.5,0) -- (B);
\draw[decorate,decoration={brace,raise=5pt,amplitude=5pt}] (-2.5,0) -- (B);
\draw[draw=white,line width=4pt,decorate,decoration={brace,raise=5pt,amplitude=5pt,mirror}] (-2.5,0) -- (O);
\draw[decorate,decoration={brace,raise=5pt,amplitude=5pt,mirror}] (-2.5,0) -- (O);
% Labels for the braces (they contain the distances from the axis)..
\coordinate (label_for_5_sin_theta) at ($({5*cos(120)},{2.5*sin(120)}) + (-2.5mm-10pt,0pt)$);
\node[anchor=east] at (label_for_5_sin_theta){$b\sin\theta$};
\coordinate (label_for_5_cos_theta) at (-1.25,-2.5mm-10pt);
\node at (label_for_5_cos_theta){$b\cos\theta$};
% Labels for the sides of the triangle.
\coordinate (label_for_b) at (-1.25, 1.8cm);
\node at (label_for_b){$b$};
\coordinate (label_for_a) at (1.8cm, -0.25cm);
\node at (label_for_a){$a$};
\coordinate (label_for_c) at (1.0cm, 2.0cm);
\node at (label_for_c){$c$};
\end{tikzpicture}
\end{document}