[Tex/LaTex] Tikz: Filling Parabola and Rounde Arrow

fillbetweentikz-arrowstikz-pgf

I edited my code to fill the area and plot the round arrow. The arrowhead shows upwards as shown here:

http://www.directupload.net/file/d/3751/q4ohidu4_pdf.htm

\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{ngerman}
\usepackage{graphicx}
\usepackage{tikz}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{pgfplots}
\usepackage{color}
\begin{document}
\definecolor{darkred}{rgb}{1.0,0.2,0.2}

\begin{figure} 
\begin{tikzpicture}
 %\draw[help lines] (0,0) grid (10,10);
 \draw [->, thick] (-3,0) -- (0,0) -- (3,0);
 \node at (3.2,0) {$\vec{k}$};
 \draw [->, thick] (0,0) -- (0,5);
 \node at (0,5.5) {$\varepsilon(\vec{k})$};
 \draw [thick, domain=-2:2] plot (\x, {\x*\x});
 \draw [thick, dashed] (-2,3.0) -- (2,3.0);
 \draw [fill, red] (1,3) circle [radius=0.05];
 \draw [fill, red] (2,4.2) circle [radius=0.05];
 \draw [fill, red] (3,2) circle [radius=0.05]; 
 \draw [thick] (2.5,2) -- (3.5,2);
 \draw [->, thick] (3,1.70) -- (3,2.30);
 \begin{scope}
    \clip [domain=-2:2]plot (\x, {\x*\x});
    \fill [darkgray, opacity=0.4] (-2,0) rectangle (2,3);
 \end{scope}
 \draw[thick,-stealth] plot [smooth,tension=.55] coordinates {(3.0,2.0) (2,4.2) (1.0,3.0)};
\end{tikzpicture}
\end{figure}

\end{document}

Best Answer

Maybe like this:

 \documentclass{article}
 \usepackage{tikz}
 \begin{document}
 \begin{tikzpicture}
 \draw[help lines] (0,0) grid (10,10);

 \draw [->, thick] (-3,0) -- (0,0) -- (3,0);
 \node at (3.2,0) {$\vec{k}$};
 \draw [->, thick] (0,0) -- (0,5);
 \node at (0,5.5) {$\varepsilon(\vec{k})$};
 \draw [thick, domain=-2:2] plot (\x, {\x*\x});
 \begin{scope}
    \clip [domain=-2:2]plot (\x, {\x*\x});
    \fill [blue, opacity=0.4] (-2,0) rectangle (2,3);
 \end{scope}
 \draw [thick, dashed] (-2,3.0) -- (2,3.0);
 \draw [fill, red] (1,3) circle [radius=0.05];
 \draw [fill, red] (2,4.2) circle [radius=0.05];
 \draw [fill, red] (3,2) circle [radius=0.05];
 \draw [thick] (2.5,2) -- (3.5,2);
 \draw[thick,-stealth] plot [smooth,tension=.55] coordinates {(3.0,2.0) (2,4.2) (1.0,3.0)};
\end{tikzpicture}
 \end{document}

You need to clip the parabola for the filling. To connect the points you can use a plot with coordinates. The tension option will change the "roundness" of the curve, .55 is the default value.

enter image description here