Ich habe gebogene Pfeile in meiner Zeichnung durch die Option bend left sowie bend right angegeben.

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning,arrows}
\tikzset{
  state/.style={circle,draw,minimum size=6ex},
  arrow/.style={-latex, shorten >=1ex, shorten <=1ex}}
\begin{document}
\begin{tikzpicture}[node distance=5em]
  \node [state] (S1) {$S_1$};
  \node [state, right=of S1] (S2) {$S_2$};
  \draw [arrow, bend left]  (S1) to (S2);
  \draw [arrow, bend right] (S1) to (S2);
\end{tikzpicture}
\end{document}

Nun möchte ich den Biege-Winkel vergrößern. Wie schaffe ich das? Ich habe von der bend angle Option gelesen und

\draw [arrow, bend left, bend angle=45]  (S1) to (S2);

versucht, doch das klappte nicht.

gefragt 15 Jul '13, 23:29

Felix's gravatar image

Felix
1.3k525667
Akzeptiert-Rate: 47%

bearbeitet 13 Aug '13, 14:04

cgnieder's gravatar image

cgnieder
22.1k253463


Es geht als Option für \draw, doch die Reihenfolge ist hier wichtig, der Winkel muss vor der Biegung angegeben werden, nicht danach:

\draw [arrow, bend angle=45, bend left]  (S1) to (S2);

Es geht auch als style option, die vorher wirkt

arrow/.style={-latex, shorten >=1ex, shorten <=1ex, bend angle=45}

sowie als Option für tikzpicture-Umgebung oder für einen scope.

Hier einmal vier Bilder zum Vergleich:

30 Grad (Voreinstellung) 45 Grad 60 Grad 90 Grad

Von links nach rechts mit 30° (entspricht der Voreinstellung), 45°, 60° und 90°.

Permanenter link

beantwortet 16 Jul '13, 01:54

saputello's gravatar image

saputello
11.1k174365
Akzeptiert-Rate: 51%

bearbeitet 13 Aug '13, 14:08

cgnieder's gravatar image

cgnieder
22.1k253463

Bei meinen Tests ging es nicht, ich hielt es schon für ein Versionsproblem. Mit der style option geht es aber doch, nur mit \draw nicht. Ich habe das aus der Frage entfernt und in die Antwort eingefügt, so passt es besser. Geht es mit \draw bei Dir etwa? Wenn ja, kannst Du die obersten 2 Zeilen wieder löschen. Mein Kommentar kann auch weg.

(16 Jul '13, 08:43) Felix
1

Es geht mit \draw [arrow,bend left=45] (S1)to(S2);
Wird für bend left kein Wert angegeben, dann wird der globale oder vorher angegebene Wert genommen, d.h. [...,bend angle=45,bend left] klappt im Gegensatz zu [...,bend left,bend angle=45]. Die Option bend angle eignet sich insbesondere um den Winkel für ein ganzes tikzpicture global einzustellen.

(16 Jul '13, 10:15) esdd

@esdd Sehr guter Hinweis, danke! Warum es nicht ging bzw. die Abhängigkeit von der Reihenfolge, habe ich oben in die Lösung eingefügt. Selbiges könnte man noch mit bend left=45 machen (kannte ich nicht) oder als separate Antwort.

(16 Jul '13, 10:45) Felix

@Felix In Deiner ursprünglichen Fassung der Frage (Revision 2 oder 3), hattest Du den bend angle ja als style option angegeben und genau darauf bezog sich meine Antwort auch. Da hat tatsächlich Dein eigener Code bereits die Lösung enthalten. Ich hatte für die Beispiele lediglich den Winkel auf die vier verschiedenen Werte gesetzt. Übrigens wird das in der Anleitung (ausnahmsweise) mal recht gut gezeigt auch die Auswirkung von bend left=45 etc.

(16 Jul '13, 11:46) saputello
Open in Online-Editor
\draw (7,1) to[bend left] (7.8,1)to[bend right] (8.6,1);

Optional:

Open in Online-Editor
> %\draw (-0.4,-0.8) to[bend left=60](0,-0.8);

in TikzEdt sieht es so aus:

Open in Online-Editor
\begin{tikzpicture}
\draw  (-0.5,0.5) rectangle (0.5,-0.5);
\draw (-0.4,0) to[bend left] (0,0) to[bend right] (0.4,0);
%\draw (-0.4,-0.8) to[bend left=60] (0,-0.8);
\draw  (-0.2,-0.1) -- (0.2,0.1);
\end{tikzpicture}
Permanenter link

beantwortet 10 Mär '16, 22:29

tahalahlou's gravatar image

tahalahlou
1
Akzeptiert-Rate: 0%

bearbeitet 10 Mär '16, 22:31

Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×731
×35

gestellte Frage: 15 Jul '13, 23:29

Frage wurde gesehen: 44,612 Mal

zuletzt geändert: 10 Mär '16, 22:31