Flussdiagramm mit Latex

Tabellen und Grafiken erstellen und anordnen


TheMan
Forum-Anfänger
Forum-Anfänger
Beiträge: 19
Registriert: Fr 5. Dez 2014, 13:15

Flussdiagramm mit Latex

Beitrag von TheMan »

Guten Tag,

vielleicht kann mir hier jemand helfen der schon viel Erfahrung mit Flussdiagrammen und Latex hat.

Ich versuche schon die ganze Zeit das folgende Flussdiagramm mit Latex nachzubauen...zumindest so weit dies mit Latex möglich ist. Leider scheitere ich kläglich :cry:

Bild

Besteht die Möglichkeit, das mir dieses Diagramm jemand erstellt? Natürlich nur wenn es keine all zu großen Umstände macht.

Beschriftung usw. könnte natürlich einfach aus willkürlichen Namen bestehen.


Vielen Dank im voraus.

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2529
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

Re: Flussdiagramm mit Latex

Beitrag von Stefan Kottwitz »

Hi,
TheMan hat geschrieben:Ich versuche schon die ganze Zeit das folgende Flussdiagramm mit Latex nachzubauen.
was hast Du denn bisher geschafft?
Vielleicht kann man das ja erweitern und verbessern.
Mein zuletzt gemachter Flowchart ist hier.

Stefan

TheMan
Forum-Anfänger
Forum-Anfänger
Beiträge: 19
Registriert: Fr 5. Dez 2014, 13:15

Beitrag von TheMan »

Entschuldige das ich jetzt erst antworte.

Vielen Dank für die Rückmeldung, mittlerweile habe ich das Flowchart hinbekommen :)

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2456
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag von Bartman »

Zur Sicherheit schiebe ich die Abbildung von TheMan auf den goLaTeX-Server.

Bild

Als ich kürzlich nach der Lösung für ein anderes Problem suchte, fand ich meine pgf/TikZ-Zeichnung zu diesem Thema. Vielleicht dient sie jemandem als Anreiz für dessen Zeichnung. Ich habe mir erlaubt, von der farblichen Vorgabe abzuweichen.
\documentclass[tikz, border=5pt]{standalone}

\usepackage[utf8]{inputenc}% bei einer aktuellen TeX-Distribution nicht nötig
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[ngerman]{babel}

\usetikzlibrary{
	matrix,
	positioning,
	arrows.meta,
	calc%,
%	shadows
}

\tikzset{font=\sffamily}

\begin{document}
\begin{tikzpicture}[
	>={Stealth[round]},
	very thick,
	box/.style = {
		font=\sffamily\bfseries,
%		drop shadow,
		draw=#1!90!black,
		top color=#1!30!white,
		bottom color=#1,
		minimum width=3.2cm,
		minimum height=.7cm,
		rounded corners
	},
	box/.default=lightgray
]
\matrix [
	matrix of nodes,
	row sep=3mm,
	nodes={
		box,
		minimum width=4cm
	}
] (worker) {
	RotorControlWorker\\
	SimpleCameraWorker\\
	StereoCameraWorker\\
	ScaleWorker\\
	StereoDataWorker\\
};

\node [
	box=green!90!black,
	left=-1cm of worker-1-1,
	yshift=2.5cm
] (cp) {CameraProcessor};

\node [
	box=blue!30!cyan,
	minimum height=1cm,
	right=-1cm of worker-1-1,
	yshift=4cm
] (mw) {MainWindow};

\node [
	box=gray,
	right=8cm of cp
] (sqld) {SQL-Datenbank};

\node [
	box=yellow,
	above=of mw,
	yshift=1cm
] (gui) {GUI};


% Linien zwischen der Matrix und CameraProcessor
\draw (worker-5-1) -| (cp) coordinate [pos=.88] (p1) coordinate [pos=.98] (p2);
% Pfeil von der Matrix zum MainWindow
\draw [->] (worker-5-1) -| (mw) node [pos=.9, right] {Daten};

\foreach \row in {1,...,4}
	% Verbindungslinien der Matrix-Zeilen mit der Linie zu CameraProcessor
	% Verbindungslinien der Matrix-Zeilen mit der Pfeil zu MainWindow
	\foreach \boxname in {cp,mw}
		\draw (worker-\row-1)  -- (worker-\row-1-|\boxname);

% Pfeil zwischen MainWindow und Matrix
\draw [<->, shorten <=2pt, shorten >=2pt, dashed] (mw) to (worker-1-1);

\begin{scope}[shorten <=2pt, shorten >=10pt]
% Pfeil von MainWindow zu CameraProcessor
\draw [->] (mw.west) -- node [above left] {Sequenz} (cp.north);
% Pfeil zwischen MainWindow und SQL-Datenbank
\draw [<->] (mw.east) -- node [above right] {Daten} (sqld.north);
\end{scope}


% Pfeil von MainWindow zu GUI
\draw [->] 
	($(mw.north west)!2/3!(mw.north east)$) coordinate (mw above right)
	to node [right] {Ausgabe der Daten} 
	(mw above right|-gui.south)
;
% Pfeil von GUI zu MainWindow
\draw [<-] 
	($(mw.north west)!1/3!(mw.north east)$) coordinate (mw above left)
	to node [left, align=left] {Eingabe von Daten\\und Befehlen} 
	(mw above left|-gui.south)
;


% Pfeile unterhalb von CameraProcessor
\draw [->, transform canvas={xshift=2mm}] 
	(p1) to node [right] {Rückmeldung} (p2);
\draw [->, transform canvas={xshift=-2mm}]
	(p2) to node [left]  {Befehle} 	 (p1);
\end{tikzpicture}
\end{document}
Leider muss man heute wohl noch etwas ergänzen: Ich begrüße sachliche Kritik, Verbesserungsvorschläge oder Alternativen zu meinem Lösungsvorschlag und betrachte diese nicht als Angriff auf mein Werk.
Dateianhänge
TheMan_Flussdiagramm.png
TheMan_Flussdiagramm.png (725.93 KiB) 4388 mal betrachtet

Antworten