Nodeposition an Path verändern

Tabellen und Grafiken erstellen und anordnen


leeroyj
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Mi 7. Mär 2012, 13:06

Nodeposition an Path verändern

Beitrag von leeroyj »

Hi, ich experimentiere derzeit ein wenig mit TikZ, um Automaten darzustellen. Jetzt habe ich folgenden Automaten.
\begin{tikzpicture}[node distance=2cm,auto,bend angle=10]
	\node[state,initial,accepting]	(q_0)					{$q_0$};
	\node[state]					(q_1)	[above=of q_0]	{$q_1$};
	\node[state]					(q_2)	[right=of q_1]	{$q_2$};
	\node[state]					(q_3)	[right=of q_2]	{$q_3$};
	\node[state]					(q_4)	[right=of q_0]	{$q_4$};
	\node[state,accepting]			(q_5)	[right=of q_4]	{$q_5$};
	\node[state]					(q_6)	[below=of q_0]	{$q_6$};
	\node[state]					(q_7)	[right=of q_6]	{$q_7$};
	\node[state]					(q_8)	[right=of q_7]	{$q_8$};
	
	\path[->]	(q_0)	edge					node[swap]	{a} (q_4)
						edge	[bend left]		node		{b} (q_2)
				(q_1)	edge					node[swap]	{a} (q_0)
						edge					node		{b} (q_2)
				(q_2)	edge	[bend left]		node		{a}	(q_0)
						edge	[bend left]		node		{b}	(q_3)
				(q_3)	edge	[bend left]		node		{a}	(q_2)
						edge	[bend left]		node		{b} (q_0)
				(q_4)	edge					node[swap]	{a} (q_6)
						edge					node		{b} (q_5)
				(q_5)	edge					node		{a}	(q_3)
						edge					node[swap]	{b}	(q_6)
				(q_6)	edge					node		{a}	(q_0)
						edge					node		{b}	(q_7)
				(q_7)	edge					node		{a}	(q_8)
						edge					node		{b}	(q_5)
				(q_8)	edge					node		{a}	(q_5)
						edge					node		{b}	(q_4);
		
\end{tikzpicture}
Das sieht dann so aus:
Bild

Mein Problem ist, dass die Nodes, die die Beschriftung für die Pfade q8->q4 und q7->q5 sich überschneiden. Gibt es eine Möglichkeit, die Nodes nicht in der Mitte zu generieren, sondern vielleicht an der Ausgangs/End-Node des jeweiligen Pfades? Aus dem, was dazu im pgfmanual steht, werde ich nicht wirklich schlau.

Apfeltasche
Forum-Century
Forum-Century
Beiträge: 113
Registriert: Mi 31. Aug 2011, 14:47

Beitrag von Apfeltasche »

Dein Codeschnipsel läuft bei mir auf jeden Fall nicht einfach so durch, entweder du hast mit 'state' selbst sachen definiert oder du benutzt irgendeine tikzlibrary.
Nichtsdestotrotz kannst du nochmal ins pgfmanual schauen. Bei mir im Abschnitt "16.5.1 Positioning Nodes Using Anchors".
also z.B. node[anchor=north]

Apfeltasche
Forum-Century
Forum-Century
Beiträge: 113
Registriert: Mi 31. Aug 2011, 14:47

Beitrag von Apfeltasche »

Ein einfaches node[below right] tut es auch, oder eben node[above left]

leeroyj
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Mi 7. Mär 2012, 13:06

Beitrag von leeroyj »

Habe jetzt doch genau das gefunden was ich gesucht habe :)
Mit pos=0-1.0 kann man angeben wo die Node positioniert wird, 0 ist Start, 1.0 ist Pfeilspitze. Trotzdem danke ;)

Und ja, ich habe libraries benutzt, nicht dran gedacht, dass die mit rein müssen.

Antworten