%20Netzwerktopologie%20mit%20Tikz.png)
Ich versuche, einige sehr grundlegende Netzwerktopologien zu zeichnen, und dachte, ich könnte dafür mal Tikz verwenden.
Also dachte ich, ich fange mal an und bitte dann um Hilfe, denn ich muss fünf davon machen und es hat keinen Sinn, sie alle rückwärts zu machen.
Hier ist mein MWE:
\documentclass[11pt,a4paper,oneside]{book}
\usepackage{tikz}
\begin{document}
\begin{center}
\def\a{.4}
\begin{figure}
\begin{tikzpicture}
\draw (2,-1) circle (\a cm);
\draw (2,-1) -- (2,0);
\draw (4,-1) circle (\a cm);
\draw (4,-1) -- (4,0);
\draw (1,1) circle (\a cm);
\draw (1,1) -- (1,0);
\draw (3,1) circle (\a cm);
\draw (3,1) -- (3,0);
\draw (5,1) circle (\a cm);
\draw (5,1) -- (5,0);
\draw (0,0) -- (6,0);
\end{tikzpicture}
\caption{Bus Network Topology}
\end{figure}
\end{center}
\end{document}
Das kommt also zunächst etwas wackelig heraus, nicht die Zentrierung, die ich mir erhofft hatte
Außerdem wird die Zeichnung in das nächste eingefügt \section{}
, da es sich um ein Float handelt und LaTeX damit macht, was es will. Wenn es Vorschläge gibt, wie man diese Unzulänglichkeit bekämpfen kann, wäre das super. Ich glaube, ich habe es durch die Verwendung zu einem Float gemacht begin{figure}
, aber ich wollte es beschriften.
Es wäre schön, auch hier etwas Farbe hinzuzufügen, nur einen flachen Ton in den Ellipsen (würde die Verbindungslinien verbergen)
Ich werde Mesh, Baum, Stern, Ring und Bus zeichnen, wie sie hier abgebildet sind.
Trotzdem danke!
Antwort1
So können Sie das Netzwerk zeichnen:
\documentclass[11pt,a4paper,oneside]{book}
\usepackage{tikz}
\begin{document}
\def\ab{.4}
\tikzset{
net node/.style = {circle, minimum width=2*\ab cm, inner sep=0pt, outer sep=0pt, ball color=blue!50!cyan},
net connect/.style = {line width=1pt, draw=blue!50!cyan!25!black},
net thick connect/.style = {net connect, line width=2.5pt},
}
\begin{figure}
\centering
\begin{tikzpicture}
\path [net thick connect]
(0,0) -- (6,0);
\foreach \i/\j in {2/-1,4/-1,1/1,3/1,5/1}
\path [net connect] (\i,0) -- (\i,\j) node [net node] {};
\end{tikzpicture}
\caption{Bus Network Topology}
\end{figure}
\end{document}
Beachten Sie, dass es keinen Sinn ergibt, figure
eine center
Umgebung einzufügen. Verwenden Sie stattdessen „ \centering
innerhalb“, figure
um das Diagramm zu zentrieren. Ich habe einige Stile eingerichtet, da es dadurch einfacher ist, die Einheitlichkeit zu wahren und beispielsweise die Farbe aller Knoten bei Bedarf zu ändern. Ich habe auch eine Schleife verwendet, um die Knoten zu zeichnen.
Hierfür gibt es viele Möglichkeiten, aber diese sollte sich meiner Meinung nach relativ einfach an die anderen Netzwerkdiagramme anpassen lassen, während sich einige der anderen Methoden nicht so einfach verallgemeinern lassen.
Beachten Sie, dass dies \a
ein vorhandener Befehl ist. Verwenden Sie \newcommand
anstelle von , \def
um nach dieser Art von Problemen zu suchen. Ich habe ersetzt, \ab
was noch nicht vergeben ist.
Bei manchen Netzwerken ist es möglicherweise einfacher, Polarkoordinaten zu verwenden, um die Knotenpositionen anzugeben. Betrachten Sie beispielsweise den Stern, der im Wesentlichen aus Knoten besteht, die auf einem Kreis um einen Hubknoten angeordnet sind:
Es wäre mühsam, die Knotenpositionen im oben verwendeten System zu berechnen, aber Polarkoordinaten machen das Diagramm unkompliziert:
\newcommand*\ab{.4}
\tikzset{
net node/.style = {circle, minimum width=2*\ab cm, inner sep=0pt, outer sep=0pt, ball color=blue!50!cyan},
net root node/.style = {net node, minimum width=3*\ab cm},
net connect/.style = {line width=1pt, draw=blue!50!cyan!25!black},
}
\begin{figure}
\centering
\begin{tikzpicture}
\node (root) [net root node] {};
\foreach \i in {0,...,4}
\path [net connect] (root) -- (-90+\i*72:2) node [net node] {};
\end{tikzpicture}
\caption{Star Network Topology}
\end{figure}
Ring und Netz sind sich sehr ähnlich:
\begin{figure}
\centering
\begin{tikzpicture}
\foreach \i in {0,...,4}
\path (-90+\i*72:2) node (n\i) [net node] {};
\path [net connect] (n0) -- (n1) -- (n2) -- (n3) -- (n4) -- (n0);
\end{tikzpicture}
\caption{Ring Network Topology}
\end{figure}
\begin{figure}
\centering
\begin{tikzpicture}
\foreach \i in {0,...,4}
\path (-90+\i*72:2) node (n\i) [net node] {};
\foreach \i in {0,...,4}
\foreach \j in {0,...,4}
\path [net connect]
(n\i) -- (n\j);;
\end{tikzpicture}
\caption{Mesh Network Topology}
\end{figure}
Für den Baum würde ich völlig unnötigerweise verwenden, forest
aber beachten Sie, dass dies völlig ungeheuerlich ist! Ich würde es tun, weil es ein Baum ist und fantastisch ist - nicht, weil ein so einfaches Diagramm die Leistung von ... forest
benötigt .forest
\documentclass[11pt,a4paper,oneside]{book}
\usepackage{tikz,forest}
\begin{document}
\addtocounter{figure}{4}
\newcommand*\ab{.4}
\tikzset{
net node/.style = {circle, minimum width=2*\ab cm, inner sep=0pt, outer sep=0pt, ball color=blue!50!cyan},
net root node/.style = {net node, minimum width=3*\ab cm},
net connect/.style = {line width=1pt, draw=blue!50!cyan!25!black},
}
\begin{figure}
\centering
\begin{forest}
for tree={
edge=net connect,
if level=0{%
net root node,
before typesetting nodes={
repeat=2{
append={[,
net node,
repeat=3{
append={[, net node]},
},
]},
},
},
}{},
}
[]
\end{forest}
\caption{Tree Network Topology}
\end{figure}
\end{document}
Was mir daran natürlich gefällt, ist, dass das, was den Baum tatsächlich zeichnet, letztendlich aus einem einzigen Satz eckiger Klammern besteht!
Der Hybrid ist kniffliger, da es weniger Muster gibt. Ich habe mit dem Ringmuster gearbeitet und die restlichen Knoten manuell hinzugefügt, mit Hilfe der calc
Bibliothek für TikZ.
\usetikzlibrary{calc}
...
\begin{figure}
\centering
\begin{tikzpicture}
\foreach \i in {0,...,4}
\path (-90+\i*72:2) node (n\i) [net node] {};
\path [net connect]
(n0)
edge node [net node, pos=1] {} +(0,-15mm)
edge node [net node, pos=1] {} +(10mm,-15mm)
edge node [net node, pos=1] {} +(-10mm,-15mm)
-- (n1)
edge (n4)
edge (n3)
-- (n2)
-- (n3)
-- (n4)
-- (n0)
($(n2)!1/2!(n3)$) -- +(0,15mm) node [net node] {}
;
\end{tikzpicture}
\caption{Hybrid Network Topology}
\end{figure}