Flussdiagramm - PSTricks - Knoten

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Flussdiagramm - PSTricks - Knoten

Re: PSTricks - Knoten - Definition Box

von CrazyHorse » Mi 16. Feb 2011, 16:36

Omega hat geschrieben:Kann mir bitte dazu jemand ein Beispiel oder einen Ansatz liefern oder auf eine Dokumentation verweisen.
http://tug.org/PSTricks/main.cgi?file=pst-node/nodes

Herbert

PSTricks - Knoten - Definition Box

von Omega » Mi 16. Feb 2011, 13:00

Um auf die Umrandung von Boxen zurückzukommen,
würde ich gerne eigene Boxen definieren mit "beliebigen", geschlossenen Kurvenzügen und nicht etwa nur rechtwinklige Boxen verwenden.

Entscheidend ist dabei, dass sie einen ähnlichen Umfang an Eigenschaften haben wie die Standardboxen, die bereits in pstricks implementiert sind.
Dies soll heißen, dass man sie z.B. platzieren kann und durch entsprechende
Verbindung (z.B. \ncline) mit anderen Knoten unter beliebigen Winkeln verbinden kann. Die Verbindungslinie(unter beliebigen Winkel) soll dabei aber an der Außenkontur der Box beginnen.

Kann mir bitte dazu jemand ein Beispiel oder einen Ansatz liefern oder auf eine Dokumentation verweisen.

Danke

Flussdiagramm - PSTricks - Knoten

von Omega » Fr 14. Jan 2011, 16:09

CrazyHorse hat geschrieben:
ja, ist aber nicht so einfach, da zuerst die Lininenendpunkt berechnet werden und dann verschoben wird. Hier eine einfachere Lösung der ersten Variante:
\documentclass{article}
\usepackage{pst-node}
\begin{document}

\begin{center}
   \begin{pspicture}[showgrid](-1,-1)(6,4)
      \psset{nodesep=0pt}
      \rput(0,0){\rnode{A}{\psframebox{Box 1}}}
      \rput(5,0){\rnode{B}{\psframebox{Box 2}}}
      \pnode(2.5,3){D}
      \ncangle[angleA=-90, angleB=0, offsetA=-0.75]{D}{A}
      \ncangle[angleA=-90,angleB=180, offsetA=0.75]{D}{B}
      \rput(D){\psovalbox[fillstyle=solid,fillcolor=white]{Knoten}}
   \end{pspicture}
\end{center}

\end{document} 
Danke dir Herbert!
Dies ist meiner Meinung nach eine gute und elegante Lösung, welche in der Praxis öfters ihre Anwedung finden kann und mir eigentlich auch schon genügt.

Nichtsdestotrotz würde ich gerne wissen wie es ausschauen müsste, wenn
man die Box nicht mit Weiß füllen möchte, sondern einen bestehenden Hintergrund in der Box sichtbar lassen möchte.

Die verzweigende Box (hier: Oval) soll hierbei eine beliebige geschlossene Kurve sein. Die Verwendung von 'angleX' und 'offsetX' für eine Lösung, sollte weiterhin beibehalten werden (so stelle ich mir vor).

Danke für dein Engagement!


Schöne Grüße

von CrazyHorse » Fr 14. Jan 2011, 14:52

Omega hat geschrieben:Das visuelle Ergebnis erfüllt meine Forderung. Ich erhalte jedoch nachfolgende Meldung, die mir die Lösung doch unzufriedenstellend erscheinen lässt.

Meldung:
"Overfull \hbox (71.13185pt too wide) detected at line 8"
die Meldung ist in diesem Fall falsch und kann ignoriert werden
Ist es aber möglich, objektorientiert auf die Umrandung des Knoten zuzugreifen bzw. auf den Knoten zu referenzieren, so dass man die Umrandung EXAKT trifft ohne den Endpunkt durch 'nodesep' einzupassen?
ja, ist aber nicht so einfach, da zuerst die Lininenendpunkt berechnet werden und dann verschoben wird. Hier eine einfachere Lösung der ersten Variante:
\documentclass{article}
\usepackage{pst-node}
\begin{document}

\begin{center}
   \begin{pspicture}[showgrid](-1,-1)(6,4)
      \psset{nodesep=0pt}
      \rput(0,0){\rnode{A}{\psframebox{Box 1}}}
      \rput(5,0){\rnode{B}{\psframebox{Box 2}}}
      \pnode(2.5,3){D}
      \ncangle[angleA=-90, angleB=0, offsetA=-0.75]{D}{A}
      \ncangle[angleA=-90,angleB=180, offsetA=0.75]{D}{B}
      \rput(D){\psovalbox[fillstyle=solid,fillcolor=white]{Knoten}}
   \end{pspicture}
\end{center}

\end{document} 
Herbert

von Omega » Fr 14. Jan 2011, 13:07

dada hat geschrieben:Ich würde es mit einer Objektüberlagerung realisieren:
\documentclass{article} 
\usepackage{pstricks, pst-node} 
\begin{document} 
   \begin{pspicture}[showgrid=false](-1,-1)(6,4) 
      \psset{nodesep=0pt} 
      \rput(0,0){\rnode{A}{\psframebox{Box 1}}} 
      \rput(5,0){\rnode{B}{\psframebox{Box 2}}} 
      \put(2.5,3){\rnode{D}}
			 \ncangle[angleA=-90, angleB=0, offsetA=-0.75]{D}{A} 
      \ncangle[angleA=-90,angleB=180, offsetA=0.75]{D}{B} 
			 \rput(2.5,3){\rnode{C}{\psovalbox[fillstyle=solid,fillcolor=white]{Knoten}}}
   \end{pspicture} 
\end{document} 
So müsste es eigentlich gehen
Danke für die schnelle Antwort!
Das visuelle Ergebnis erfüllt meine Forderung. Ich erhalte jedoch nachfolgende Meldung, die mir die Lösung doch unzufriedenstellend erscheinen lässt.

Meldung:
"Overfull \hbox (71.13185pt too wide) detected at line 8"
CrazyHorse hat geschrieben:
\ncangle[angleA=-90, angleB=0, offsetA=-0.75,nodesepA=-4pt]{C}{A}
\ncangle[angleA=-90,angleB=180, offsetA=0.75,nodesepA=-4pt]{C}{B}
Danke dir Herbert! Du hast eine gute, pragmatische Antwort auf meine Frage geliefert.

Ist es aber möglich, objektorientiert auf die Umrandung des Knoten zuzugreifen bzw. auf den Knoten zu referenzieren, so dass man die Umrandung EXAKT trifft ohne den Endpunkt durch 'nodesep' einzupassen?

Re: Flussdiagramm - PSTricks - Knoten

von CrazyHorse » Mi 12. Jan 2011, 20:11

Omega hat geschrieben: Mit der Verwendung von 'offsetA' bzw. 'offsetB' liegt das Linienende der Verbindung nicht mehr auf der Umrandung (Oval bzw. Kreis) des Knotens.

Gibt es eine Möglichkeit diesen Sachverhalt 'elegant' und exakt zu lösen, so dass tatsächlich eine Verbindung zwischen den Linien entsteht?
      \ncangle[angleA=-90, angleB=0, offsetA=-0.75,nodesepA=-4pt]{C}{A}
      \ncangle[angleA=-90,angleB=180, offsetA=0.75,nodesepA=-4pt]{C}{B}
Herbert

von dada » Mi 12. Jan 2011, 15:19

Ich würde es mit einer Objektüberlagerung realisieren:
\documentclass{article} 
\usepackage{pstricks, pst-node} 
\begin{document} 
   \begin{pspicture}[showgrid=false](-1,-1)(6,4) 
      \psset{nodesep=0pt} 
      \rput(0,0){\rnode{A}{\psframebox{Box 1}}} 
      \rput(5,0){\rnode{B}{\psframebox{Box 2}}} 
      \put(2.5,3){\rnode{D}}
			 \ncangle[angleA=-90, angleB=0, offsetA=-0.75]{D}{A} 
      \ncangle[angleA=-90,angleB=180, offsetA=0.75]{D}{B} 
			 \rput(2.5,3){\rnode{C}{\psovalbox[fillstyle=solid,fillcolor=white]{Knoten}}}
   \end{pspicture} 
\end{document} 
So müsste es eigentlich gehen

Flussdiagramm - PSTricks - Knoten

von Omega » Mi 12. Jan 2011, 13:30

Hallo,

die Erstellung eines Flussdiagramms mit PSTricks bereitet mir eine Schwierigkeit.
Ich möchte an einem Ovalknoten oder Kreisknoten parallele und nebeneinanderliegende Verbindungen haben.

Mit der Verwendung von 'offsetA' bzw. 'offsetB' liegt das Linienende der Verbindung nicht mehr auf der Umrandung (Oval bzw. Kreis) des Knotens.

Gibt es eine Möglichkeit diesen Sachverhalt 'elegant' und exakt zu lösen, so dass tatsächlich eine Verbindung zwischen den Linien entsteht?

Ich danke allen schon mal im voraus, die sich die Mühe machen diesen Beitrag zu lesen.


Minimalbeispiel:
\documentclass{article}
\usepackage{pstricks, pst-node}
\begin{document}
	\begin{pspicture}[showgrid=false](-1,-1)(6,4)
		\psset{nodesep=0pt}
		\rput(0,0){\rnode{A}{\psframebox{Box 1}}}
		\rput(5,0){\rnode{B}{\psframebox{Box 2}}}
		\rput(2.5,3){\rnode{C}{\psovalbox{Knoten}}}
		\ncangle[angleA=-90, angleB=0, offsetA=-0.75]{C}{A}
		\ncangle[angleA=-90,angleB=180, offsetA=0.75]{C}{B}
	\end{pspicture}
\end{document}

Nach oben