Die Mathe-Redaktion - 18.06.2018 11:11 - Registrieren/Login
Auswahl
ListenpunktHome
ListenpunktAktuell und Interessant ai
ListenpunktArtikelübersicht/-suche
ListenpunktAlle Links / Mathe-Links
ListenpunktFach- & Sachbücher
ListenpunktMitglieder / Karte
ListenpunktRegistrieren/Login
ListenpunktArbeitsgruppen
ListenpunktSchwätz / Top 15
ListenpunktWerde Mathe-Millionär!
ListenpunktAnmeldung MPCT Juli
ListenpunktFormeleditor fedgeo
Aktion im Forum
Suche
Stichwortsuche in Artikeln und Links von Matheplanet
Suchen im Forum
Suchtipps

Bücher
Englische Bücher
Software
Suchbegriffe:
Mathematik bei amazon
Naturwissenschaft & Technik
In Partnerschaft mit Amazon.de
Kontakt
Mail an Matroid
[Keine Übungsaufgaben!]
Impressum

Bitte beachten Sie unsere Nutzungsbedingungen, die Distanzierung, unsere Datenschutzerklärung und
die Forumregeln.

Sie können Mitglied werden. Mitglieder können den Matheplanet-Newsletter bestellen, der etwa alle 2 Monate erscheint.

Der Newsletter Okt. 2017

Für Mitglieder
Mathematisch für Anfänger
Wer ist Online
Aktuell sind 637 Gäste und 25 Mitglieder online.

Sie können Mitglied werden:
Klick hier.

Über Matheplanet
 
Zum letzten Themenfilter: Themenfilter:
Matroids Matheplanet Forum Index
Moderiert von Stefan_K
Matroids Matheplanet Forum Index » Textsatz mit LaTeX » LaTeX/pgfplots: Schalter für trigonometrische Achsenbeschriftung. Vereinfachungsvorschläge erwünscht
Druckversion
Druckversion
Antworten
Antworten
Autor
Kein bestimmter Bereich LaTeX/pgfplots: Schalter für trigonometrische Achsenbeschriftung. Vereinfachungsvorschläge erwünscht
cis
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 03.08.2002
Mitteilungen: 14945
Aus:
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Themenstart: 2018-02-21

\(\begingroup\)
<math>
% Reichweite der Ticks festlegen
\def\Unterteilungstiefe{4} % 4 oder 2  oder 1
\def\Range{-5,...,10}
% xticklist erstellen
\newcommand{\xticklist}{}% Name reservieren
\let\xticklist=\empty% Liste erstellen
\makeatletter
\foreach \n  in \Range
{
\pgfmathparse{pi*\n/\Unterteilungstiefe}%
\ifx\empty\xticklist{} \protected@xdef\xticklist{\pgfmathresult}%
\else \protected@xdef\xticklist{\xticklist,\pgfmathresult}%
\fi
}\makeatother
%Anzeigen: \xticklist


\begin{tikzpicture}[]
\begin{axis}[width=7cm,
font=\footnotesize,
x = 0.785 cm,
axis lines=middle,
xlabel=$x$,
xlabel style={at=(current axis.right of origin), anchor=north},
ylabel=$y$,
ylabel style={at=(current axis.above origin), anchor=base east},%<-
xtick/.expanded = {\xticklist},
xticklabel={%
% Pi-Ganze-Einheiten
\pgfmathsetmacro{\g}{((\tick/pi))}%
\pgfmathsetmacro{\gP}{int(ceil(\tick/pi))}%
\pgfmathsetmacro{\gN}{int(abs(floor(\tick/pi)))}%
\def\GanzePositivSonst{(mod(\gP,1) == 0 ? "\gP\pi" : "p")}%
\def\GanzePositivEins{\gP == 1 ? "\pi"}%
\def\GanzePositiv{\GanzePositivEins : (\GanzePositivSonst)}%
\def\GanzeNegativSonst{mod(\gN,1) == 0 ? "-\gN\pi" : "n"}%
\def\GanzeNegativEins{\gN == 1 ? "-\pi"}%
\def\GanzeNegativ{\GanzeNegativEins : (\GanzeNegativSonst)}%
% Pi-Halbe-Einheiten
\pgfmathsetmacro{\h}{((\tick*2/pi))}%
\pgfmathsetmacro{\hP}{int(ceil(\tick*2/pi))}%
\pgfmathsetmacro{\hN}{int(abs(floor(\tick*2/pi)))}%
\def\HalbePositivSonst{(mod(\hP,2) == 1 ? "\frac{\hP\pi}{2}" : (\GanzePositiv))}%
\def\HalbePositivEins{\hP == 1 ? "\frac{\pi}{2}"}%
\def\HalbePositiv{\HalbePositivEins : (\HalbePositivSonst)}%
\def\HalbeNegativSonst{mod(\hN,2) == 1 ? "-\frac{\hN\pi}{2}" : (\GanzeNegativ)}%
\def\HalbeNegativEins{\hN == 1 ? "-\frac{\pi}{2}"}%
\def\HalbeNegativ{\HalbeNegativEins : (\HalbeNegativSonst)}%
% Pi-Viertel-Einheiten
\pgfmathsetmacro{\v}{((\tick*4/pi))}%
\pgfmathsetmacro{\vP}{int(ceil(\tick*4/pi))}%
\pgfmathsetmacro{\vN}{int(abs(floor(\tick*4/pi)))}%
\def\ViertelPositivSonst{(mod(\vP,2) == 1 ? "\frac{\vP\pi}{4}" : (\HalbePositiv))}%
\def\ViertelPositivEins{\vP == 1 ? "\frac{\pi}{4}"}%
\def\ViertelPositiv{\ViertelPositivEins : (\ViertelPositivSonst)}%
\def\ViertelNegativSonst{mod(\vN,2) == 1 ? "-\frac{\vN\pi}{4}" :  (\HalbeNegativ)}%
\def\ViertelNegativEins{\vN == 1 ? "-\frac{\pi}{4}"}%
\def\ViertelNegativ{\ViertelNegativEins : (\ViertelNegativSonst)}%
%
\pgfmathparse{\tick > 0 ? (\ViertelPositiv) : (\ViertelNegativ)
}$\pgfmathresult$
},
%minor xtick/.expanded = {\xticklist},
enlarge y limits=.125,
]
\addplot[domain=-5:9, samples=300] {sin(deg(x))};
\end{axis}
\end{tikzpicture}
</math>


Ich habe hier einen Code geschrieben, der es erlaubt, die x-Achse mit $\frac{\pi}{n}$-Einheiten, wobei $n = 4,2,1$, automatisch zu beschriften.

Das sieht dann auszugsweise so aus:
Auszug
% Pi-Ganze-Einheiten
\pgfmathsetmacro{\g}{((\tick/pi))}%
\pgfmathsetmacro{\gP}{int(ceil(\g))}%
\pgfmathsetmacro{\gN}{int(abs(floor(\g)))}%
\def\GanzePositivSonst{(mod(\gP,1) == 0 ? "\gP\pi" : "p")}%
\def\GanzePositivEins{\gP == 1 ? "\pi"}%
\def\GanzePositiv{\GanzePositivEins : (\GanzePositivSonst)}%
\def\GanzeNegativSonst{mod(\gN,1) == 0 ? "-\gN\pi" : "n"}%
\def\GanzeNegativEins{\gN == 1 ? "-\pi"}%
\def\GanzeNegativ{\GanzeNegativEins : (\GanzeNegativSonst)}%

Hat jmd. Lust, das zu durchleuchten zwecks möglicher Vereinfachung?  wink
Vielleicht ja auch ganz anders...


Ganzer Code
latex
%\documentclass[]{article}
\documentclass[border=5mm, tikz]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.13}
 
\begin{document}
 
 
\def\Unterteilungstiefe{4} % 4 oder 2  oder 1
% Reichweite der Ticks festlegen
\def\Range{-5,...,10}
% xticklist erstellen
\newcommand{\xticklist}{}% Name reservieren
\let\xticklist=\empty% Liste erstellen
\makeatletter
\foreach \n  in \Range
{
\pgfmathparse{pi*\n/\Unterteilungstiefe}%
  \ifx\empty\xticklist{} \protected@xdef\xticklist{\pgfmathresult}%
  \else \protected@xdef\xticklist{\xticklist,\pgfmathresult}%
  \fi
}\makeatother
%Anzeigen: \xticklist
 
 
\begin{tikzpicture}[]
\begin{axis}[width=7cm,
font=\footnotesize, 
x = 0.785 cm, 
axis lines=middle, 
xtick/.expanded = {\xticklist},           
xticklabel={%
% Pi-Ganze-Einheiten
\pgfmathsetmacro{\g}{((\tick/pi))}%
\pgfmathsetmacro{\gP}{int(ceil(\g))}%
\pgfmathsetmacro{\gN}{int(abs(floor(\g)))}%
\def\GanzePositivSonst{(mod(\gP,1) == 0 ? "\gP\pi" : "p")}%
\def\GanzePositivEins{\gP == 1 ? "\pi"}%
\def\GanzePositiv{\GanzePositivEins : (\GanzePositivSonst)}%
\def\GanzeNegativSonst{mod(\gN,1) == 0 ? "-\gN\pi" : "n"}%
\def\GanzeNegativEins{\gN == 1 ? "-\pi"}%
\def\GanzeNegativ{\GanzeNegativEins : (\GanzeNegativSonst)}%
% Pi-Halbe-Einheiten
\pgfmathsetmacro{\h}{((\tick*2/pi))}%
\pgfmathsetmacro{\hP}{int(ceil(\h))}%
\pgfmathsetmacro{\hN}{int(abs(floor(\h)))}%
\def\HalbePositivSonst{(mod(\hP,2) == 1 ? "\frac{\hP\pi}{2}" : (\GanzePositiv))}%
\def\HalbePositivEins{\hP == 1 ? "\frac{\pi}{2}"}%
\def\HalbePositiv{\HalbePositivEins : (\HalbePositivSonst)}%
\def\HalbeNegativSonst{mod(\hN,2) == 1 ? "-\frac{\hN\pi}{2}" : (\GanzeNegativ)}%
\def\HalbeNegativEins{\hN == 1 ? "-\frac{\pi}{2}"}%
\def\HalbeNegativ{\HalbeNegativEins : (\HalbeNegativSonst)}%
% Pi-Viertel-Einheiten
\pgfmathsetmacro{\v}{((\tick*4/pi))}%
\pgfmathsetmacro{\vP}{int(ceil(\v))}%
\pgfmathsetmacro{\vN}{int(abs(floor(\v)))}%
\def\ViertelPositivSonst{(mod(\vP,2) == 1 ? "\frac{\vP\pi}{4}" : (\HalbePositiv))}%
\def\ViertelPositivEins{\vP == 1 ? "\frac{\pi}{4}"}%
\def\ViertelPositiv{\ViertelPositivEins : (\ViertelPositivSonst)}%
\def\ViertelNegativSonst{mod(\vN,2) == 1 ? "-\frac{\vN\pi}{4}" :  (\HalbeNegativ)}%
\def\ViertelNegativEins{\vN == 1 ? "-\frac{\pi}{4}"}%
\def\ViertelNegativ{\ViertelNegativEins : (\ViertelNegativSonst)}%
%
\pgfmathparse{\tick > 0 ? (\ViertelPositiv) : (\ViertelNegativ) 
}$\pgfmathresult$
},
%minor xtick/.expanded = {\xticklist},
enlarge y limits=.125,
]
\addplot[domain=-5:9, samples=300] {sin(deg(x))}; 
\end{axis}
\end{tikzpicture}
 
\end{document}






-----------------
Wenn man alles ausgeschaltet hat, was unmöglich ist, bleibt am Ende etwas übrig, das die Wahrheit enthalten muß - mag es auch noch so unwahrscheinlich sein...
(Sherlock Holmes)
·
\(\endgroup\)


  Profil  Quote  Link auf diesen Beitrag Link
cis
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 03.08.2002
Mitteilungen: 14945
Aus:
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.1, vom Themenstarter, eingetragen 2018-05-02

\(\begingroup\)



Hab es hinbekommen, und zwar für die Darstellungskriterien:

Und für beliebige $\pi$-Faktoren (also z.B. auch $-\frac{6\pi}{7}, -\frac{5\pi}{7},\dots$).

Dazu kann man, im Hinblick auf Zähler (Z) und Nenner (N) des Pi-Faktorenbruches, folgenden Ablaufplan verwenden:

<math>

\pagecolor{red!1}
\usetikzlibrary{matrix,shapes}

\tikzset{%
treenode/.style = {%fill=gray!10,
shape=rectangle,
draw, anchor=center,
%text width=5em,
align=center,
%draw=cyan, very thick,
text=black,
text width=1cm,
%inner sep=1ex
},
startstop/.style      = {treenode, rounded corners=7pt},
process/.style      = {treenode},
decision/.style = {treenode, diamond, inner sep=0pt},
output/.style={treenode, trapezium,trapezium left angle=60, trapezium right angle=120, font=\sffamily\slshape\tiny},
input/.style={treenode, trapezium,trapezium left angle=120, trapezium right angle=60},
predefprocess/.style  = {treenode,  path picture={\draw[treenode, -]
([xshift=1mm]path picture bounding box.north west)--([xshift=1mm]path picture bounding box.south west)
([xshift=-1mm]path picture bounding box.north east)--([xshift=-1mm]path picture bounding box.south east);}},
}%
\newcommand{\ja}{-| node [auto=left, near start] {ja}}
\newcommand{\nein}{-|  node [auto=right, near start]  {nein}}
\begin{document}
\begin{tikzpicture}[scale=0.5,
font=\sffamily\footnotesize,
>=latex, ->,
%every path/.style={red, very thick},
]
%\pgfgettransform\mytrafo

\def\Start{|[decision]| N=1}
\def\ZEins{|[decision]| Z = 1}
\def\ZnegEins{|[decision]| Z = -1}
\def\Zneg{|[decision]| Z < 0}
\def\ZposI{|[startstop,  minimum height=0.85cm]| \frac{Z\pi}{N}}
\def\ZposII{|[startstop,  minimum height=0.85cm]| -\frac{|Z|\pi}{N}}

\def\ZposEins{|[startstop,  minimum height=0.85cm]| \frac{\pi}{N}}
\def\ZnegEinsI{|[startstop,  minimum height=0.85cm]| -\frac{\pi}{N}}
\def\ZposIII{|[startstop,  minimum height=0.85cm]| Z\pi}
\def\ZposIV{|[startstop,  minimum height=0.85cm]| -\pi}
\def\ZNEins{|[startstop,  minimum height=0.85cm]| \pi}





\matrix (m)
[
%execute at begin cell=\pgfsettransform\mytrafo,
matrix of math nodes,
nodes in empty cells,
column sep      =0.75ex,
row sep         = 2ex,
%nodes={process},       % default
%column 1/.style = {nodes={decision}},
%column 2/.style = {nodes={process}}
]
{
%1 & 2 & 3 &  4  & 5 & \Start  & 7 & 8 & 9 & 10 \\
&           &  &    &  & \Start  &  &  &  &  \\
&           &  &    & \ZEins &   & &   & \ZEins &  \\
&           &     &\ZnegEins  &  & \ZposEins  &  & \ZnegEins &  & \ZNEins \\
&           & \Zneg &    & \ZnegEinsI &    & \ZposIII &  & \ZposIV  &  \\
& \ZposI &          & \ZposII  &  &   &  &  &  &  \\
%1& 2 & 3 &  4  & 5 & 6  & 7 & 8 & 9 & 10 \\
};

% Links
\draw[] (m-1-6) \nein (m-2-5);

\draw[] (m-2-5) \nein (m-3-4);
\draw[] (m-2-5) \ja  (m-3-6);

\draw[] (m-3-4) \nein (m-4-3);
\draw[] (m-3-4) \ja (m-4-5);

\draw[] (m-4-3) \nein (m-5-2);
\draw[] (m-4-3) \ja (m-5-4);

% Rechts
\draw[] (m-1-6) \ja (m-2-9);

\draw[] (m-2-9) \nein (m-3-8);
\draw[] (m-2-9) \ja (m-3-10);

\draw[] (m-3-8) \nein (m-4-7);
\draw[] (m-3-8) \ja (m-4-9);



\end{tikzpicture}

</math>



Das setzt pgfmath so um:
xtick/.expanded = {\xticklist},           
xticklabel={%
\pgfmathsetmacro{\p}{int(\tick*\u/\pinum)}% pi-Faktor
\pgfmathsetmacro{\Z}{int(\p/gcd(\p,\u))}% Zähler
  \pgfmathsetmacro{\Zabs}{int(abs(\Z))}% Zähler-Betrag
\pgfmathsetmacro{\N}{int(\u/gcd(\p,\u))}% Nenner
\pgfmathparse{%
\N == 1 ? (\Z==1 ? "\pi" : (\Z==-1 ? "-\pi" : "\Z\pi")) :% 
(\Z==1 ? "\frac{\pi}{\N}" : (\Z==-1 ? "-\frac{\pi}{\N}" :%
(\Z<0 ? "-\frac{\Zabs\pi}{\N}" : "\frac{\Z\pi}{\N}")%
))%
}
$\pgfmathresult$%
%$\frac{\Z}{\N}$% zum Testen
},

Kleiner Warnhinweis: Die Rechengenauigkeit von pgfmath ist nicht beliebig; z.B. ab Pi-Neuntel Unterteilung kommen Fehler rein.


Beispiele:

\pgfmathtruncatemacro{\u}{4} % Unterteilungstiefe



\pgfmathtruncatemacro{\u}{7} % Unterteilungstiefe


latex
%\documentclass[]{article}
\documentclass[border=5mm, tikz]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.13}
 
\begin{document}
 
% Eingaben
\pgfmathsetmacro{\xStauchung}{0.58500055}% Stauchung x-Achse
% Liste mit tick-Werten erstellen
\pgfmathsetmacro{\pinum}{3.142} % Rechengenauigkeit
\pgfmathtruncatemacro{\u}{7} % Unterteilungstiefe
% Reichweite der Ticks festlegen
\def\Range{-20,...,20}
 
% xticklist erstellen
\newcommand{\xticklist}{}% Name reservieren
\let\xticklist=\empty% Liste erstellen
\makeatletter
\foreach \n  in \Range
{
\pgfmathparse{\n*\pinum/\u}%
  \ifx\empty\xticklist{} \protected@xdef\xticklist{\pgfmathresult}%
  \else \protected@xdef\xticklist{\xticklist,\pgfmathresult}%
  \fi
}\makeatother
%Anzeigen: \xticklist
 
% Zeichnen
\pgfmathsetmacro{\xScale}{\xStauchung*\u/pi}% 
\begin{tikzpicture}[]
\begin{axis}[
font=\footnotesize, 
x = \xScale cm, 
%y = 1cm, 
axis lines=middle, 
xlabel=$x$,xlabel style={anchor=north},
ylabel=$y$,ylabel style={anchor=east},
x axis line style = {-latex}, y axis line style = {-latex},
%
xtick/.expanded = {\xticklist},           
xticklabel={%
\pgfmathsetmacro{\p}{int(\tick*\u/\pinum)}% pi-Faktor
\pgfmathsetmacro{\Z}{int(\p/gcd(\p,\u))}% Zähler
  \pgfmathsetmacro{\Zabs}{int(abs(\Z))}% Zähler-Betrag
\pgfmathsetmacro{\N}{int(\u/gcd(\p,\u))}% Nenner
\pgfmathparse{%
\N == 1 ? (\Z==1 ? "\pi" : (\Z==-1 ? "-\pi" : "\Z\pi")) :% 
(\Z==1 ? "\frac{\pi}{\N}" : (\Z==-1 ? "-\frac{\pi}{\N}" :%
(\Z<0 ? "-\frac{\Zabs\pi}{\N}" : "\frac{\Z\pi}{\N}")%
))%
}
$\pgfmathresult$%
%$\frac{\Z}{\N}$% zum Testen
},
minor xtick/.expanded = {\xticklist},
%
enlarge y limits={abs=0.125}, % kein Effekt
]
\addplot[domain=-4:7, samples=300] {sin(deg(x))}; 
\end{axis}
\end{tikzpicture}
 
\end{document}
Ganzer Code


latex
\documentclass[border=5pt]{standalone}
\usepackage{selinput}
\SelectInputMappings{adieresis={ä},germandbls={ß}}
\usepackage{tikz}
\usetikzlibrary{matrix,shapes}
 
\tikzset{%
treenode/.style = {%fill=gray!10, 
shape=rectangle, 
draw, anchor=center,
%text width=5em, 
align=center,
%draw=cyan, very thick,
text=black,
text width=1cm,
%inner sep=1ex
},
startstop/.style      = {treenode, rounded corners=7pt},
process/.style      = {treenode},
decision/.style = {treenode, diamond, inner sep=0pt},
output/.style={treenode, trapezium,trapezium left angle=60, trapezium right angle=120, font=\sffamily\slshape\tiny},
input/.style={treenode, trapezium,trapezium left angle=120, trapezium right angle=60},
predefprocess/.style  = {treenode,  path picture={\draw[treenode, -]
    ([xshift=1mm]path picture bounding box.north west)--([xshift=1mm]path picture bounding box.south west)
    ([xshift=-1mm]path picture bounding box.north east)--([xshift=-1mm]path picture bounding box.south east);}},
}%
\newcommand{\ja}{-| node [auto=left, near start] {ja}}
\newcommand{\nein}{-|  node [auto=right, near start]  {nein}}
\begin{document}
\begin{tikzpicture}[scale=0.5,
font=\sffamily\tiny,
>=latex, ->,  
%every path/.style={red, very thick}, 
]
%\pgfgettransform\mytrafo
 
\def\Start{|[decision]| N=1}
\def\ZEins{|[decision]| Z = 1}
\def\ZnegEins{|[decision]| Z = -1}
\def\Zneg{|[decision]| Z < 0}
\def\ZposI{|[startstop,  minimum height=0.85cm]| \frac{Z\pi}{N}}
\def\ZposII{|[startstop,  minimum height=0.85cm]| -\frac{Z\pi}{N}}
 
\def\ZposEins{|[startstop,  minimum height=0.85cm]| \frac{\pi}{N}}
\def\ZnegEinsI{|[startstop,  minimum height=0.85cm]| -\frac{\pi}{N}}
\def\ZposIII{|[startstop,  minimum height=0.85cm]| Z\pi}
\def\ZposIV{|[startstop,  minimum height=0.85cm]| -\pi}
\def\ZNEins{|[startstop,  minimum height=0.85cm]| \pi}
 
\matrix (m)
[
%execute at begin cell=\pgfsettransform\mytrafo,
matrix of math nodes,
nodes in empty cells,
column sep      =0.75ex,
row sep         = 2ex,
%nodes={process},       % default
%column 1/.style = {nodes={decision}},
%column 2/.style = {nodes={process}}
]
{
%1 & 2 & 3 &  4  & 5 & \Start  & 7 & 8 & 9 & 10 \\
&           &  &    &  & \Start  &  &  &  &  \\
&           &  &    & \ZEins &   & &   & \ZEins &  \\
&           &     &\ZnegEins  &  & \ZposEins  &  & \ZnegEins &  & \ZNEins \\
&           & \Zneg &    & \ZnegEinsI &    & \ZposIII &  & \ZposIV  &  \\
& \ZposI &          & \ZposII  &  &   &  &  &  &  \\
%1& 2 & 3 &  4  & 5 & 6  & 7 & 8 & 9 & 10 \\
};
 
% Links
\draw[] (m-1-6) \nein (m-2-5);
 
\draw[] (m-2-5) \nein (m-3-4);
\draw[] (m-2-5) \ja  (m-3-6);
 
\draw[] (m-3-4) \nein (m-4-3);
\draw[] (m-3-4) \ja (m-4-5);
 
\draw[] (m-4-3) \nein (m-5-2);
\draw[] (m-4-3) \ja (m-5-4);
 
% Rechts
\draw[] (m-1-6) \ja (m-2-9);
 
\draw[] (m-2-9) \nein (m-3-8);
\draw[] (m-2-9) \ja (m-3-10);
 
\draw[] (m-3-8) \nein (m-4-7);
\draw[] (m-3-8) \ja (m-4-9);
 
\end{tikzpicture}
\end{document}
Code für Ablaufdiagramm
\(\endgroup\)


  Profil  Quote  Link auf diesen Beitrag Link
cis
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 03.08.2002
Mitteilungen: 14945
Aus:
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.2, vom Themenstarter, eingetragen 2018-05-03

\(\begingroup\)
Kann jmd. das Ablaufdiagramm vereinfachen?
Ich hatte zwei Ideen:
· einmal mit Prüfung des Zählers anfangen; und
· einmal mit der Prüfung, ob Z/N ganz ist (das heißt mod(Z,N) = 0)

Ich komme aber jeweils auf die selbe Anzahl von Verzweigungen.



2018-05-02 21:14 - cis in Beitrag No. 1 schreibt:
Darstellungskriterien:

Und für beliebige $\pi$-Faktoren (also z.B. auch $-\frac{6\pi}{7}, -\frac{5\pi}{7},\dots$).

Dazu kann man, im Hinblick auf Zähler (Z) und Nenner (N) des Pi-Faktorenbruches, folgenden Ablaufplan verwenden:

<math>

\pagecolor{red!1}
\usetikzlibrary{matrix,shapes}

\tikzset{%
treenode/.style = {%fill=gray!10,
shape=rectangle,
draw, anchor=center,
%text width=5em,
align=center,
%draw=cyan, very thick,
text=black,
text width=1cm,
%inner sep=1ex
},
startstop/.style      = {treenode, rounded corners=7pt},
process/.style      = {treenode},
decision/.style = {treenode, diamond, inner sep=0pt},
output/.style={treenode, trapezium,trapezium left angle=60, trapezium right angle=120, font=\sffamily\slshape\tiny},
input/.style={treenode, trapezium,trapezium left angle=120, trapezium right angle=60},
predefprocess/.style  = {treenode,  path picture={\draw[treenode, -]
([xshift=1mm]path picture bounding box.north west)--([xshift=1mm]path picture bounding box.south west)
([xshift=-1mm]path picture bounding box.north east)--([xshift=-1mm]path picture bounding box.south east);}},
}%
\newcommand{\ja}{-| node [auto=left, near start] {ja}}
\newcommand{\nein}{-|  node [auto=right, near start]  {nein}}
\begin{document}
\begin{tikzpicture}[scale=0.5,
font=\sffamily\footnotesize,
>=latex, ->,
%every path/.style={red, very thick},
]
%\pgfgettransform\mytrafo

\def\Start{|[decision]| N=1}
\def\ZEins{|[decision]| Z = 1}
\def\ZnegEins{|[decision]| Z = -1}
\def\Zneg{|[decision]| Z < 0}
\def\ZposI{|[startstop,  minimum height=0.85cm]| \frac{Z\pi}{N}}
\def\ZposII{|[startstop,  minimum height=0.85cm]| -\frac{|Z|\pi}{N}}

\def\ZposEins{|[startstop,  minimum height=0.85cm]| \frac{\pi}{N}}
\def\ZnegEinsI{|[startstop,  minimum height=0.85cm]| -\frac{\pi}{N}}
\def\ZposIII{|[startstop,  minimum height=0.85cm]| Z\pi}
\def\ZposIV{|[startstop,  minimum height=0.85cm]| -\pi}
\def\ZNEins{|[startstop,  minimum height=0.85cm]| \pi}





\matrix (m)
[
%execute at begin cell=\pgfsettransform\mytrafo,
matrix of math nodes,
nodes in empty cells,
column sep      =0.75ex,
row sep         = 2ex,
%nodes={process},       % default
%column 1/.style = {nodes={decision}},
%column 2/.style = {nodes={process}}
]
{
%1 & 2 & 3 &  4  & 5 & \Start  & 7 & 8 & 9 & 10 \\
&           &  &    &  & \Start  &  &  &  &  \\
&           &  &    & \ZEins &   & &   & \ZEins &  \\
&           &     &\ZnegEins  &  & \ZposEins  &  & \ZnegEins &  & \ZNEins \\
&           & \Zneg &    & \ZnegEinsI &    & \ZposIII &  & \ZposIV  &  \\
& \ZposI &          & \ZposII  &  &   &  &  &  &  \\
%1& 2 & 3 &  4  & 5 & 6  & 7 & 8 & 9 & 10 \\
};

% Links
\draw[] (m-1-6) \nein (m-2-5);

\draw[] (m-2-5) \nein (m-3-4);
\draw[] (m-2-5) \ja  (m-3-6);

\draw[] (m-3-4) \nein (m-4-3);
\draw[] (m-3-4) \ja (m-4-5);

\draw[] (m-4-3) \nein (m-5-2);
\draw[] (m-4-3) \ja (m-5-4);

% Rechts
\draw[] (m-1-6) \ja (m-2-9);

\draw[] (m-2-9) \nein (m-3-8);
\draw[] (m-2-9) \ja (m-3-10);

\draw[] (m-3-8) \nein (m-4-7);
\draw[] (m-3-8) \ja (m-4-9);



\end{tikzpicture}

</math>

\(\endgroup\)


  Profil  Quote  Link auf diesen Beitrag Link
Neues Thema [Neues Thema] Antworten [Antworten]    Druckversion [Druckversion]

 


Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2018 by Matroids Matheplanet
This web site was made with PHP-Nuke, a web portal system written in PHP. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]