PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : UND/ODER Graphen, AND/OR Graphen zeichnen



ProfessorChaos
29-11-2008, 14:17
Hi,

ich durchforste seit Stunden Manuals und Tutorials von Tikz, und allem ähnlichem, was ich finden konnte -> erfolglos.

Ich suche eine Möglichkeit (ein funktionierendes Minimalbeispiel wäre nett), einen UND/ODER Graphen zu zeichnen. Ein solcher zeichnet sich dadurch aus, dass beliebig viele Kanten durch einen Halbkreis miteinander verbunden werden. Verbal schwer zu beschreiben, siehe daher Grafik:
http://www.pascal-bercher.de/UND_ODER.jpg
In dieser Grafik meine ich also die Verbindung zwischen den ausgehenden Kanten des Knotens s.

Ist das irgendwie möglich?

voss
29-11-2008, 14:56
Ich suche eine Möglichkeit (ein funktionierendes Minimalbeispiel wäre nett), einen UND/ODER Graphen zu zeichnen. Ein solcher zeichnet sich dadurch aus, dass beliebig viele Kanten durch einen Halbkreis miteinander verbunden werden. Verbal schwer zu beschreiben, siehe daher Grafik:
In dieser Grafik meine ich also die Verbindung zwischen den ausgehenden Kanten des Knotens s.

Ist das irgendwie möglich?

sicher. Du brauchst aber das neueste pstricks.tex von http://perce.de/LaTeX/pstricks/


\documentclass[11pt]{article}
\usepackage{pst-tree}
\SpecialCoor
\begin{document}

\psset{arrows=->,arrowscale=2.5}
\pstree[radius=15pt,treesep=2cm]{\Tcircle[name=s]{s}}{%
\pstree{\Tcircle[name=a]{a}}{%
\Tcircle[name=c]{c}}
\pstree{\Tcircle[name=b]{b}}{
\Tcircle[name=d]{d}}
}
\ncline{->}{b}{a}
\psarcAB[psscale=0.5,arrows=-](s)(a)(b)

\end{document}


Herbert

ProfessorChaos
29-11-2008, 17:08
Hi,


sicher. Du brauchst aber das neueste pstricks.tex von http://perce.de/LaTeX/pstricks/

zunächst einmal vielen Dank! Gerade für den Code, der hat mich sehr viel weiter gebracht. Doch leider bekomme zwei Probleme noch immer nicht gelöst (ja, das pstricks manual habe ich zu Rate gezogen). Ich schaffe es nicht, diese Kreisverbindung zu nicht-gerade-verlaufenden Kanten zu machen.

Wahrscheinlich ist meine folgende Frage etwas unverschämt, daher rechne ich auch nicht mit einer Antwort. Aber ich frage einfach mal: Ist es möglich, das folgende handgezeichnete Beispiel mit pstricks darzustellen? Falls ja, könnte ich den Code haben?
http://www.pascal-bercher.de/UND_ODER_002.jpg
Während ich die obere Kreisverbindung hinbekomme, kann ich die untere linke und die untere rechte nicht einzeichnen, da beide eine Kante beinhalten, die nicht gerade verlaufen (links ein \nccircle, rechts ein \nccurve).

voss
29-11-2008, 18:23
Wahrscheinlich ist meine folgende Frage etwas unverschämt, daher rechne ich auch nicht mit einer Antwort. Aber ich frage einfach mal: Ist es möglich, das folgende handgezeichnete Beispiel mit pstricks darzustellen? Falls ja, könnte ich den Code haben?

Während ich die obere Kreisverbindung hinbekomme, kann ich die untere linke und die untere rechte nicht einzeichnen, da beide eine Kante beinhalten, die nicht gerade verlaufen (links ein \nccircle, rechts ein \nccurve).

ich verstehe überhaupt nbicht, wieso du sowas nciht gleich sagen kannst ... :mad:
Da man den Kurvenverlauf nicht kennt, kann man den Punkt nur durch "Raten" ermiiteln,
bzw. durch ein Koordinatengitter, welches man temporär darüberlegt. Die x-Koordinate
ermittelt sich dann relativ (!) zum Wurzelknoten und nicht zu (0,0) des KO-Gitters


\documentclass[11pt]{article}
\usepackage{pst-tree}
\SpecialCoor
\begin{document}

%\begin{pspicture}[showgrid=true](5,-5)% für Gitter
\psset{arrows=->,arrowscale=2.5}
\pstree[radius=15pt,treesep=2cm]{\Tcircle[name=s]{s}}{%
\pstree{\Tcircle[name=a]{a}}{%
\Tcircle[name=c]{c}}
\pstree{\Tcircle[name=b]{b}}{
\Tcircle[name=d]{d}}
}
\ncline{->}{b}{a}\nccurve{->}{d}{s}%
\psarcAB[psscale=0.5,arrows=-](s)(a)(b)%
\psarcnAB[psscale=0.3,arrows=-](d)(b)(2.1,-3.2)
%\end{pspicture}

\end{document}


Herbert