I'm struggling with the proper location of three angles. Here is the picture I want to draw: vectors and angles

And here is what I have so far:




axis lines=middle,

%\draw [line width=.5pt,color=yellow,fill=yellow,fill opacity=0.11] (0,0) -- (0.:0.3) arc (0.:34:0.7) -- cycle;

\draw [shift={(-2,-2)},line width=.5pt,color=brown,fill=brown,fill opacity=0.11] (0,0) -- (0.:0.3) arc (0.:72:0.3) -- cycle;

\draw [shift={(-2,-2)},line width=.5pt,color=magenta,fill=magenta,fill opacity=0.11] (0,0) -- (33:0.3) arc (33:72:.4) -- cycle;

\draw [-latex] (0.,0.) -- (1.84,1.24);
\draw [-latex] (0.,0.) -- (0.82,2.54);

\draw[color=black] (0.7,0.8) node {$\vec{u}$};
\draw[color=black] (0.3,1.52) node {$\vec{v}$};
%\draw[color=teal] (0.3,0.09) node {$\alpha$};
%\draw[color=red] (0.2,0.2) node {$\beta$};
%\draw[color=blue] (0.2,0.1) node {$\gamma$};

which renders this:

desired pic

I know that all three angles have the same center (point [0;0]) but different radius. How can I achieve that? Thanks a lot!

3 Answers 3


The angles library is designed for this. It is helpful to also use the quotes library to make the syntax simpler:

enter image description here

\usetikzlibrary {angles, quotes}


\coordinate (o) at (0,0);
\coordinate (u) at (1.84,1.24);
\coordinate (v) at (0.82,2.54);
\coordinate (x) at (2,0);

\draw [-latex] (o) -- (u);
\draw [-latex] (o) -- (v);
\draw [-latex] (o) -- (x);

\path pic[draw=blue, angle radius=8mm, "$\alpha$", blue, angle eccentricity=.8]{angle=x--o--u};
\path pic[draw=red, angle radius=9mm, "$\beta$", red, angle eccentricity=.7]{angle=u--o--v};
\path pic[draw=teal, angle radius=10mm, "$\gamma$", below right, teal, angle eccentricity=1.1]{angle=x--o--v};



Like this:

enter image description here

Code (the angle are calculated separetly):


\sisetup{round-mode = places, round-precision = 1} % fix # of decimal places

        \draw[gray!20,step=.5] (-1,-1) grid (3,3);
        \draw[thin,-latex] (-1,0)--(3,0) node[right] () {$x$};
        \draw[thin,-latex] (0,-1)--(0,3) node[above] () {$y$};
        \foreach \i in {-1,-.5,.5,1,...,3}{
            \draw (\i,0)--(\i,-.1) node[below] () {\num{\j}};
        \foreach \i in {-1,-.5,.5,1,...,3}{
            \draw (0,\i)--(-.1,\i) node[left] () {\num{\j}};
        \draw[line width=2pt,-latex] (0,0)--(1.84,1.24);
        \draw[line width=2pt,-latex] (0,0)--(.82,2.54);
        \draw[red] (1,0)  arc(0:33.98:1) node[midway,fill=white] {\bfseries $\alpha$};
        \draw[blue] (33.98:1.2) arc(33.98:72.11:1.2) node[midway,fill=white] {\bfseries $\beta$};   

If You want also the legends for the two vectors, modify thi two lines:

\draw[line width=2pt,-latex] (0,0)--(1.84,1.24) node[above] {$\vec{u}$};
\draw[line width=2pt,-latex] (0,0)--(.82,2.54) node[above] {$\vec{v}$};

New output:

enter image description here


An alternative with tkz-base and tkz-euclide

The code

    \tkzDrawSegments[vector style](O,A O,B)
    \tkzLabelSegment[above left=-0.5ex,pos=.5](O,B){$\vec{v}$}

enter image description here

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.