%\documentclass[draft]{beamer}
\documentclass{beamer}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage{amsmath, amssymb}
\usepackage{listings}

% Supress navigation symbols
\setbeamertemplate{navigation symbols}{}

\setbeamertemplate{blocks}[rounded][shadow=true]
%\usetheme[numbers,compress,mylogo]{Trondheim}
\usecolortheme{crane}

\beamertemplatenavigationsymbolsempty
\setbeamertemplate{footline}[frame number]
%\setlength{\parindent}{0pt}

% Das TikZ graphik paket laden
\usepackage{tikz}

\usetikzlibrary{calc}
\usetikzlibrary{through}
\usepackage{tkz-euclide}
\usetkzobj{all}

\usetikzlibrary{trees,snakes}
% Das Paket fuer den \foreach Befehl
\usepackage{pgffor}
\usepackage{verbatim}

\lstset{basicstyle=\small, language=tex}
\begin{document}
\begin{frame}[b]
\begin{center}
{\Huge \textsf{\textbf{\LaTeX3: Grafiken mit TikZ}}}\\
(TikZ = TikZ ist kein Zeichenprogrammpaket)
\\[4ex]
\end{center}

\tikzstyle{level 1}=[sibling angle=120]
\tikzstyle{level 2}=[sibling angle=60]
\tikzstyle{level 3}=[sibling angle=30]
\tikzstyle{every node}=[fill]
\tikzstyle{edge from parent}=[snake=expanding waves,segment length=1mm,
                              segment angle=10,draw]
\begin{tikzpicture}[scale=0.8, grow cyclic,shape=circle,very thick,level distance=13mm,
                    cap=round]
\node {} child [color=\A] foreach \A in {red,green,blue}
    { node {} child [color=\A!50!\B] foreach \B in {red,green,blue}
        { node {} child [color=\A!50!\B!50!\C] foreach \C in {black,gray,white}
            { node {} }
        }
    };
\end{tikzpicture}
\end{frame}

\begin{frame}[t,fragile]
\frametitle{Gerade Linien zeichnen:}
\begin{block}{}
\begin{verbatim}
\usepackage{tikz}

[...]

\begin{tikzpicture}

\draw (0,0) -- (2,2);

\end{tikzpicture}
\end{verbatim}
\end{block}
\begin{center}
\begin{tikzpicture}
\draw (0,0) -- (2,2);
\end{tikzpicture}
\end{center}
\end{frame}

\begin{frame}[t,fragile]
\frametitle{Pfeile Zeichnen und relative Koordinaten:}
\begin{block}{}
\begin{verbatim}
\begin{tikzpicture}

\draw[->] (0,0) -- (2,2);

% mit "+" werden relative Koordinaten angegeben
\draw[<->>, line width=5pt] (2,0) -- +(2,2);

\end{tikzpicture}
\end{verbatim}
\end{block}
\begin{center}
\begin{tikzpicture}
\draw[->] (0,0) -- (2,2);

% mit "+" werden relative Koordinaten angegeben
\draw[<->>, line width=5pt] (2,0) -- +(2,2);
\end{tikzpicture}
\end{center}
\end{frame}

\begin{frame}[t,fragile]
\frametitle{Polarkoordinaten \texttt{(winkel:radius)}:}
\begin{block}{}
\begin{verbatim}
\begin{tikzpicture}

\draw (0:1cm) -- (72:1cm) -- (2*72:1cm) --
      (3*72:1cm) -- (-72:1cm) -- cycle;

\end{tikzpicture}
\end{verbatim}
\end{block}
\begin{center}
\begin{tikzpicture}
\draw (0:1cm) -- (72:1cm) -- (2*72:1cm) --
      (3*72:1cm) -- (-72:1cm) -- cycle;
\end{tikzpicture}
\end{center}
\end{frame}

\begin{frame}[t,fragile]
\frametitle{Kurven zeichnen:}
\begin{block}{}
\begin{verbatim}
\begin{tikzpicture}
% Die Line kruemmt sich um 30 Grad nach Links:
\draw[bend left=30] (0,0) to (1,2);

% aus- und eingehenden Winkel festlegen:
\draw[out=90, in=-90] (3,0) to (4,2);

% Direkte eingabe der Kontrollpunkte:
\draw (6,0) .. controls (6,1) and (7,1) .. (7,2);

\end{tikzpicture}
\end{verbatim}
\end{block}{}
\begin{center}
\begin{tikzpicture}
% Die Line kruemmt sich um 30 Grad nach Links:
\draw[bend left=30] (0,0) to (1,2);

% aus- und eingehenden Winkel festlegen:
\draw[out=90, in=-90] (3,0) to (4,2);

% Direkte eingabe der Kontrollpunkte:
\draw (6,0) .. controls (6,1) and (7,1) .. (7,2);

\end{tikzpicture}\end{center}
\end{frame}

\begin{frame}[t,fragile]
\frametitle{Kreise und Ellipsen zeichnen:}
\begin{block}{}
\begin{verbatim}
\begin{tikzpicture}[x=2cm,y=2cm] %Skalierung
\draw (2cm,0) circle (10pt);
\draw (2,0) ellipse (10pt and 5pt);
\end{tikzpicture}
\end{verbatim}
\end{block}
\begin{center}
\begin{tikzpicture}[x=2cm,y=2cm] %Skalierung vs direkte Massangaben
\draw (2cm,0) circle (10pt);
\draw (2,0) ellipse (10pt and 5pt);
\end{tikzpicture}
\end{center}
\end{frame}


\begin{frame}[t,fragile]
\frametitle{Füllen von Objekten:}
\begin{block}{}
\begin{verbatim}
\begin{tikzpicture}
\fill (0,0) circle (0.25);
\fill[red] (1,0) circle (0.25);
\fill[blue] (2,0) circle (0.25);
\shade[ball color=green] (3,0) circle (0.25);

\fill[orange] (4,0) circle (0.25);
\fill[green,opacity=0.5] (4.25,0) circle (0.25);
\end{tikzpicture}
\end{verbatim}
\end{block}
\begin{center}
\begin{tikzpicture}
\fill (0,0) circle (0.25);
\fill[red] (1,0) circle (0.25);
\fill[blue] (2,0) circle (0.25);
\shade[ball color=green] (3,0) circle (0.25);

\fill[orange] (4,0) circle (0.25);
\fill[green,opacity=0.5] (4.25,0) circle (0.25);
\end{tikzpicture}
\end{center}
\end{frame}


\begin{frame}[t,fragile]
\frametitle{Zuschneiden \texttt{clip} und gruppieren \texttt{scope}:}
\begin{block}{}
\begin{verbatim}
\begin{tikzpicture}
\begin{scope}[rotate = 30]
\clip[draw] (0,0) ellipse (2cm and 1cm);
\draw[step=0.5cm, blue] (-2cm,-2cm) grid (2cm,2cm);
\draw[red] (2cm,-2cm) -- (-2cm,2cm);
\end{scope}
\draw[line width=5pt] (-2cm,0) -- (2cm,0);
\end{tikzpicture}
\end{verbatim}
\end{block}
\begin{center}
\begin{tikzpicture}
\begin{scope}[rotate = 30]
\clip[draw] (0,0) ellipse (2cm and 1cm);
\draw[step=0.5cm, blue] (-2cm,-2cm) grid (2cm,2cm);
\draw[red] (2cm,-2cm) -- (-2cm,2cm);
\end{scope}
\draw[line width=5pt] (-2cm,0) -- (2cm,0);
\end{tikzpicture}
\end{center}
\end{frame}

\begin{frame}[t,fragile]
\frametitle{\texttt{foreach}-Schleifen:}
\begin{block}{}
\begin{verbatim}
\usepackage{pgffor}

[...]

\foreach \x in {2,4,6}
{
  $a^\x$,
}
\end{verbatim}
\end{block}
\begin{center}
\foreach \x in {2,4,6}
{
  $a^\x$,
}
\end{center}
\end{frame}

\begin{frame}[t,fragile]
\frametitle{Mehrere 5-Ecke mit einer \texttt{foreach}-Schleife:}

\begin{block}{}
\begin{verbatim}
\begin{tikzpicture}
\foreach \r in {1, 0.8,..., 0.2}
  \foreach \i in {0,...,5}
    \draw (360/5*\i:\r cm) -- ({360/5*(\i+1)}:\r cm);
\end{tikzpicture}
\end{verbatim}
\end{block}
\begin{center}
\begin{tikzpicture}
\foreach \r in {1, 0.8,..., 0.2}
  \foreach \i in {0,...,5}
    \draw (360/5*\i:\r cm) -- ({360/5*(\i+1)}:\r cm);
\end{tikzpicture}
\end{center}
\end{frame}

\begin{frame}[t,fragile]
\frametitle{Text in Bildern:}
\begin{block}{}
\begin{verbatim}
\begin{tikzpicture}
\draw (0,0)
   node [rounded corners=8pt, fill=red]
        {$\int x^2 dx$}
   -- (1.5,-1.5)
   node [text=white, fill=gray]
        {Ergebnis: $\frac{x^3}{3}$};
\end{tikzpicture}
\end{verbatim}
\end{block}
\begin{center}
\begin{tikzpicture}
\draw (0,0)
   node [rounded corners=8pt, fill=red]
        {$\int x^2 dx$}
   -- (1.5,-1.5)
   node [text=white, fill=gray]
        {Ergebnis: $\frac{x^3}{3}$};
\end{tikzpicture}
\end{center}
\end{frame}

\begin{frame}[t,fragile]
\frametitle{Nodes und Verbindungen zwischen Nodes:}
\begin{block}{}
\begin{verbatim}
\begin{tikzpicture}
\node (A) at (0,0) [circle,shade,draw] {$\sin(x)$};
\node (B) at (3,0) {$\cos(x)$};
\node (C) at (6,0) [fill=red!50] {$-\sin(x)$};

\draw[->, blue!50, very thick] (A) to[bend right=20]
   node[above] {$\frac{\partial}{\partial x}$} (B);
\draw[->, blue!50, very thick] (B) to (C);
\draw[<->, thick] (A) to[out=45, in=135] (C);
\end{tikzpicture}
\end{verbatim}
\end{block}
\begin{center}
\begin{tikzpicture}
\node (A) at (0,0) [circle,shade,draw] {$\sin(x)$};
\node (B) at (3,0) {$\cos(x)$};
\node (C) at (6,0) [fill=red!50] {$-\sin(x)$};

\draw[->, blue!50, very thick] (A) to[bend right=20]
   node[above] {$\frac{\partial}{\partial x}$} (B);
\draw[->, blue!50, very thick] (B) to (C);
\draw[<->, thick] (A) to[out=45, in=135] (C);
\end{tikzpicture}
\end{center}
\end{frame}

\begin{frame}[t,fragile]
\frametitle{Benannte Koordinaten:}
\begin{block}{}
\begin{verbatim}
\begin{tikzpicture}
\coordinate[label=left:$A$] (A) at (0,0);
\coordinate[label=right:$B$] (B) at (4,1);

\draw (A) -- (B);

\fill (A) circle (2pt);
\fill (B) circle (2pt);
\end{tikzpicture}
\end{verbatim}
\end{block}
\begin{center}
\begin{tikzpicture}
\coordinate[label=left:$A$] (A) at (0,0);
\coordinate[label=right:$B$] (B) at (4,1);

\draw (A) -- (B);

\fill (A) circle (2pt);
\fill (B) circle (2pt);
\end{tikzpicture}
\end{center}
\end{frame}

\begin{frame}[t,fragile]
\frametitle{Rechnen mit Koordinaten:}
\begin{block}{}
\begin{verbatim}
\usetikzlibrary{calc}
\begin{tikzpicture}
[...]

% C liegt genau auf halber Strecke zwischen A und B
\coordinate[label=-45:$C$] (C) at ($(A)!0.5!(B)$);

\fill[red] (C) circle (2pt);
\end{tikzpicture}
\end{verbatim}
\end{block}
\begin{center}
\begin{tikzpicture}
\coordinate[label=left:$A$] (A) at (0,0);
\coordinate[label=right:$B$] (B) at (4,1);

\draw (A) -- (B);

\fill (A) circle (2pt);
\fill (B) circle (2pt);

% C liegt genau auf halber Strecke zwischen A und B
\coordinate[label=-45:$C$] (C) at ($(A)!0.5!(B)$);

\fill[red] (C) circle (2pt);
\end{tikzpicture}
\end{center}
\end{frame}

\begin{frame}[t,fragile]
\frametitle{Rechnen mit Koordinaten (forts.):}
\begin{block}{}
\begin{verbatim}
\usetikzlibrary{calc}
[...]
\begin{tikzpicture}
[...]
% D ist 1cm entfernt von der Strecke (C) -- (B):
\coordinate[label=90:$D$] (D) at ($(C)!1cm!90:(B)$);
\draw (C) -- (D) node[midway, sloped, above] {1cm};
\fill[red] (C) circle (2pt);
\fill[red] (D) circle (2pt);
\end{tikzpicture}
\end{verbatim}
\end{block}
\begin{center}
\begin{tikzpicture}
\coordinate[label=180:$A$] (A) at (0,0);
\coordinate[label=0:$B$] (B) at (4,1);

\draw (A) -- (B);

\fill (A) circle (2pt);
\fill (B) circle (2pt);

% C liegt genau auf halber Strecke zwischen A und B
\coordinate[label=-45:$C$] (C) at ($(A)!0.5!(B)$);

% D ist 2cm entfernt von der Strecke (C) -- (B):
\coordinate[label=90:$D$] (D) at ($(C)!1cm!90:(B)$);
\draw (C) -- (D) node[midway, sloped, above] {1cm};
\fill[red] (C) circle (2pt);
\fill[red] (D) circle (2pt);
\end{tikzpicture}
\end{center}
\end{frame}

\begin{frame}[t,fragile]
\frametitle{Rechnen mit Koordinaten (forts.):}
\begin{block}{}
\begin{verbatim}
\begin{tikzpicture}
  [every node/.style={fill, circle, inner sep = 1pt}]
\node[label=above:$A$] (A) at (-1,-1) {};
\node[label=above:$B$] (B) at ($(A) + (2, 1.5)$) {};
\tikzset{every node/.style={fill, color=red,circle,
		 inner sep = 1pt}}
\node[label=above:$C$] (C) at ($2*(B)$) {};
\end{tikzpicture}
\end{verbatim}
\end{block}
\begin{center}
\begin{tikzpicture}
\draw[step=0.5, gray!30] (-2,-2) grid (2,2);
\foreach \x in {-2,...,2}
{
   \node[text=gray!30, left] at (-2,\x) {$\x$};
   \node[text=gray!30, below] at (\x,-2) {$\x$};
}
\begin{scope}[every node/.style={fill, circle, inner sep = 1pt}]
\node[label=above:$A$] (A) at (-1,-1) {};
\node[label=above:$B$] (B) at ($(A) + (2, 1.5)$) {};
\tikzset{every node/.style={fill, color=red,circle, inner sep = 1pt}}
\node[label=above:$C$] (C) at ($2*(B)$) {};
\end{scope}
\end{tikzpicture}
\end{center}
\end{frame}

\begin{frame}[t,fragile]
\frametitle{Schnittpunkte:}
Gegeben sind 4 Koordinaten: $\{A, B, C, D\}$.
Wir können den Schnittpunkt $E$ der Geraden $\overline{AB}$ und $\overline{CD}$ berechnen.
\begin{block}{}
\begin{verbatim}
\begin{tikzpicture}
[...]
\coordinate[label=90:$E$] (E) at
  (intersection of A--B and C--D);

\fill (E) circle (2pt);
\end{tikzpicture}
\end{verbatim}
\end{block}
\begin{center}
\begin{tikzpicture}
\coordinate[label=180:$A$] (A) at (-1,-0.5);
\coordinate[label=0:$B$] (B) at (2,1);
\coordinate[label=-90:$C$] (C) at (1,-0.5);
\coordinate[label=90:$D$] (D) at (-1,1);

\draw (A) -- (B);
\draw (C) -- (D);

\fill[red]  (A) circle (2pt);
\fill[red]  (B) circle (2pt);
\fill[blue] (C) circle (2pt);
\fill[blue] (D) circle (2pt);

\coordinate[label=90:$E$] (E) at
  (intersection of A--B and C--D);

\fill (E) circle (2pt);
\end{tikzpicture}
\end{center}
\end{frame}

\begin{frame}[t,fragile]
\frametitle{Kreise durch gegebene Punkte:}
Wir zeichnen einen Kreis mit Mittelpunkt $C$ der durch den Punkt $E$ geht:
Benötigt die tikzlibrary \texttt{through}
\begin{block}{}
\begin{verbatim}
\usetikzlibrary{through}
[...]

\begin{tikzpicture}
[...]
\node (kreis) at (C) [draw, circle through=(E)] {};
\end{tikzpicture}
\end{verbatim}
\end{block}
\begin{center}
\begin{tikzpicture}
\coordinate[label=180:$A$] (A) at (-1,-0.5);
\coordinate[label=0:$B$] (B) at (2,1);
\coordinate[label=-90:$C$] (C) at (1,-0.5);
\coordinate[label=90:$D$] (D) at (-1,1);

\draw (A) -- (B);
\draw (C) -- (D);

\fill[red]  (A) circle (2pt);
\fill[red]  (B) circle (2pt);
\fill[blue] (C) circle (2pt);
\fill[blue] (D) circle (2pt);

\coordinate[label=90:$E$] (E) at
  (intersection of A--B and C--D);

\fill (E) circle (2pt);

\node (kreis) at (C) [draw, circle through=(E)] {};
\end{tikzpicture}
\end{center}
\end{frame}

\begin{frame}{Aufgabe}
Man betrachte ein Dreieck mit den Eckpunkten
\begin{itemize}
\item $A=(1,0)$
\item $B=(5,3)$
\item $C=(2,5)$
\end{itemize}
\begin{enumerate}
\item Man zeichne das Dreieck in ein Koordinatensystem mit Gitter ein.
\pause
\item Man zeichne die Winkel $\alpha,\beta,\gamma$ mit unterschiedlichen Farben ein.
\pause
\item Man zeichne die H\"ohenlinie zur Grundlinie $\overline{AB}$ samt Schnittpunkt mit der Strecke $\overline{AB}$.
\pause
\item Man zeichne die Seitenhalbierende am Punkt $B$ samt Schnittpunkt mit der Strecke $\overline{AC}$ ein. 
\pause
\item Man zeichne die Winkelhalbierende am Punkt $C$ samt Schnittpunkt mit der Strecke $\overline{AC}$ ein. 
\end{enumerate}
\end{frame}

\begin{frame}[t,fragile]
\frametitle{Plot}
Plotten von Funktionen:
\begin{block}{}
\begin{verbatim}
\begin{tikzpicture}
%Koordinatensystem
\draw[step=0.5, gray!30] (0,0) grid (6,6);
\foreach \x in {0,...,6}
{
   \node[text=gray!30, left] at (0,\x) {$\x$};
   \node[text=gray!30, below] at (\x,0) {$\x$};
}
% Plot der Funktion f(x)=0.2*x^2
\draw plot[domain=0:30^(1/2)] (\x,0.2*\x^2) 
   node[right] {$f(x)=0,2\cdot x^2$};
\end{tikzpicture}
\end{verbatim}
\end{block}
\end{frame}

\begin{frame}[t,fragile]
\frametitle{Plot}
Ausgabe:
\begin{center}
\begin{tikzpicture}
%Koordinatensystem
\draw[step=0.5, gray!30] (0,0) grid (6,6);
\foreach \x in {0,...,6}
{
   \node[text=gray!30, left] at (0,\x) {$\x$};
   \node[text=gray!30, below] at (\x,0) {$\x$};
}

% Plot der Funktion f(x)=0.2*x^2
\draw plot[domain=0:30^(1/2)] (\x,0.2*\x^2) node[right] {$f(x)=0,2\cdot x^2$};
\end{tikzpicture}
\end{center}
\end{frame}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}{Mehr Beispiele}
  \begin{center}
    {\Huge \TeX{}ample.net}

    \vspace{5ex}

    \url{http://www.texample.net/tikz/examples/}
  \end{center}
\end{frame}
\end{document}

