Do you have a question regarding this example, TikZ or LaTeX in general? Just ask in the
LaTeX Forum.
Oder frag auf Deutsch auf TeXwelt.de.
En français: TeXnique.fr.
%& -shell-escape% Phasor diagram% Author: Urs Zellweger (urs@zellweger.li)% GNUPLOT required\documentclass[11pt]{article}\usepackage{ifthen}\usepackage{tikz}\usepackage{pgf}\usepackage{pgffor}\usepgfmodule{shapes}\usepgfmodule{plot}\usetikzlibrary{decorations}\usetikzlibrary{arrows}\usetikzlibrary{snakes}\newcommand{\Gitter}[4]{ \draw[very thin,color=gray] (#1,#3) grid (#2,#4);}\newcommand{\Koordinatenkreuz}[6]{ \draw[->, >=latex, color=green!50!black] (#1,0) -- (#2,0) node[right] {#5}; \draw[->, >=latex, color=green!50!black] (0,#3) -- (0,#4) node[left] {#6};}\newcommand{\KoordinatenkreuzOhneLabelsVerschobenKeinPfeil}[5]{ \draw[-] (#1,0) -- (#2,0); \draw[-] (#5,#3) -- (#5,#4);}\newcommand{\ZeigerdiagrammText}[4]{\begin{tikzpicture}[scale=.72, samples=100, >=latex] \def\Alpha{#1} \def\Phase{#2} \def\AmplitudeSpannung{#3} \def\AmplitudeStrom{#4} \def\SpannungsWert{{\AmplitudeSpannung*sin(\Alpha)}} \def\StromWert{{\AmplitudeStrom*sin(\Alpha+\Phase)}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \def\FarbeSpannung{blue!90!white} \def\FarbeStrom{red!90!white} \def\FarbeWinkelZeichnung{green} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \def\Beta{\Alpha+\Phase} \def\AlphaRad{\Alpha*3.141592654/180} \def\PhaseRad{\Phase*3.141592654/180} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \Gitter{-.1}{7.1}{-3.1}{3.1} \Koordinatenkreuz{-.2}{7.3}{-3.2}{3.3}{$\omega t$}{} \draw (1.570795,0) node[below]{$\frac{\pi}{2}$}; \draw (3.14159,0) node[below]{${\pi}$}; \draw (4.71238898,0) node[below]{$\frac{3\pi}{2}$}; \draw (6.283185307,0) node[below]{${2\pi}$}; \draw (-4,0) circle (3cm); \KoordinatenkreuzOhneLabelsVerschobenKeinPfeil{-7.2}{-.8}{-3.6}{3.6}{-4} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % voltage \draw[color=\FarbeSpannung, very thick] plot[id=voltage, domain=0:7] function{\AmplitudeSpannung*sin(x)} node[right] {$U(t)$}; % voltage circle \draw[color=\FarbeSpannung, loosely dashed] (-4,0) circle (\AmplitudeSpannung cm); % angle \draw[color=\FarbeWinkelZeichnung!50!black, thick] (\AlphaRad, \SpannungsWert)--(\AlphaRad,\StromWert) node[below=18pt] {$\alpha$}; % angle in the circle \filldraw[fill=\FarbeWinkelZeichnung!20,draw=\FarbeWinkelZeichnung!50!black] (-4,0) -- (-3,0) arc (0:\Alpha:1) -- cycle node[right] {$\alpha$}; % voltage pointer \draw[<-,color=\FarbeSpannung, very thick] (\Alpha:\AmplitudeSpannung)++(-4,0) --(-4,0); \draw[color=\FarbeSpannung, dashed] (\Alpha:\AmplitudeSpannung)++(-4,0) -- (\AlphaRad,\SpannungsWert); % current \draw[color=\FarbeStrom, very thick] plot[id=current, domain=0:7] function{\AmplitudeStrom*sin(x+\PhaseRad)} node[right] {$I(t)$}; % current circle \draw[color=\FarbeStrom, loosely dashed] (-4,0) circle (\AmplitudeStrom cm); % current pointer \draw[<-,color=\FarbeStrom, very thick] (\Beta:\AmplitudeStrom)++(-4,0) --(-4,0); \draw[color=\FarbeStrom, dashed](\Beta:\AmplitudeStrom)++(-4,0) -- (\AlphaRad,\StromWert); % phase difference \ifthenelse{\Phase<0}{ \draw[snake=brace] (pi/2 ,3.3)--(pi/2-\PhaseRad ,3.3) node[above=7pt, left=10pt] {$\phi$}; } { \draw[snake=brace] (pi/2-\PhaseRad ,3.3)--(pi/2 ,3.3) node[above=7pt, left=10pt] {$\phi$}; } % angular velocity \omega \draw[->, xshift=-4cm] (120:2.4cm) arc (120:170:2) node[below] {$\omega$};\end{tikzpicture}}% % % % % % % % % % % % % % % % % % % % % % % % % % %\begin{document}% usage: {alpha}{phasedifferenceUI}{voltage}{current}{Ualpha}{Ialpha}% resistor\ZeigerdiagrammText{60}{0}{2.7}{1.8}% inductivity / coil\ZeigerdiagrammText{60}{-90}{2.7}{1.8}% capacity / conductor\ZeigerdiagrammText{60}{90}{2.7}{1.8}\end{document}
Comments
After each run of the \ZeigerdiagrammText should run the gnuplot, otherwise the sinuses of the last \ZeigerdiagrammText will be on each diagrams. How can do the right way? Arpad
Is there any way to omit using Gnuplot?
No. There is no way to draw these graphics without using gnuplot.
Adding comments is currently not enabled.