
Ich möchte folgendes erreichen:
Allerdings funktioniert das Verbinden der Knoten nicht richtig. Ich erhalte folgende Ausgabe:
Wie behebe ich das und was mache ich falsch?
MWE:
\documentclass[tikz]{article}
\usepackage{tikz}
\tikzset{square/.style = {
shape = rectangle,
fill = gray!50,
draw = black,
thick
}}
\tikzset{circle/.style = {
shape = circle,
fill = blue!20,
draw = blue,
thick
}}
\begin{document}
\begin{tikzpicture}
\draw[square] (-4,4)rectangle node (r1) {r1} (-3,5);
\draw[circle] (-1,4.5) circle [radius=0.5cm] node (s1) {s1};
\draw[->] (r1.west) -- (s1.east);
\end{tikzpicture}
\end{document}
Bitte beachten Sie, dass ich mich an den Ansatz halten möchte,\draw[->] (r1.west) -- (s1.east);
Antwort1
Richtiges Bild
\documentclass[tikz,margin=3mm]{standalone}
\tikzset{squarenode/.style = {
shape = rectangle,
fill = gray!50,
draw = black,
thick,
minimum size=1cm %%%% Take note of this!
},
circlenode/.style = {
shape = circle,
fill = blue!20,
draw = blue,
thick,
minimum size=1cm %%%% and this!
}}
\begin{document}
\begin{tikzpicture}
\draw (-4,4.5) node[squarenode] (r1) {r1}; % Or \node[squarenode] (r1) at (-4,4.5) {r1};
\draw (-1,4.5) node[circlenode] (s1) {s1}; % Or \node[circlenode] (s1) at (-1,4.5) {s1};
\draw[->] (r1) -- (s1); % or (r1.east)--(s1.west);
\end{tikzpicture}
\end{document}
Einige Hinweise (wichtig!)
circle
ist eine definierte Option, daher dürfen Sie kein neues definierencircle
. Ich habe es in geändertcirclenode
.- Sie müssen den Kreis und das Quadrat nicht manuell zeichnen. Sie können die Form im Knoten und verwenden
minimum size
. Für mehr Kontrolle haben wirminimum height
undminimum width
. - Ich empfehle nicht, viele
\tikzset{}
s zu verwenden. tikz
ist keine Option vonarticle
. Es ist eine Option vonstandalone
. Wenn Sietikz
die Option bereits geladen haben, brauchen Sie nicht\usepackage{tikz}
.
Unterschied bei Verwendung von (r1)--(s1)
und(r1.east)--(s1.west)
\documentclass[tikz,margin=3mm]{standalone}
\begin{document}
\begin{tikzpicture}
\node[draw] (a) at (0,0) {Some text};
\node[draw] (b) at (5,3) {Hello world};
\draw[thick] (0,0)--(5,3);
\draw[red] (a)--(b);
\draw[blue] (a.east)--(b.west);
\end{tikzpicture}
\end{document}
Schauen Sie sich den Anfangs- und Endpunkt der roten und der blauen Linie genau an.