2015-12-12 7 views
1

J'essaie de comprendre comment dessiner une arête entre un nœud dans tikz et l'étiquette d'une arête entre deux autres nœuds. Voici un exemple de ce que je suis en train de faire: enter image description hereTikz: dessine le bord du noeud à l'étiquette d'un autre bord

Voici mon code:

\documentclass[11pt]{article} 
\usepackage[margin=1in, top=1.5in]{geometry} 
\usepackage{amsmath,amssymb,bbm} 
\usepackage{graphicx} 
\usepackage{tikz} 
\usetikzlibrary{arrows, positioning} 

\setlength{\parindent}{0.25in} 
\newcommand{\assign}{:=} 
\usepackage[hang,small,bf]{caption} 


\begin{document} 

\begin{figure}[!h] 
    \centering 
    \begin{tikzpicture}[shorten >=1pt,node distance=3cm,on grid,auto] 
    \tikzstyle{state}=[shape=circle,thick,draw,minimum size=1.5cm] 

    \node[state] (A1) {$A_1$}; 
    \node[state,above of=A1] (B1) {$B_1$}; 
    \node[state,above of=B1] (C1) {$C_1$}; 

    \node[state,right of=A1] (A2) {$A_2$}; 
    \node[state,above of=A2] (B2) {$B_2$}; 
    \node[state,above of=B2] (C2) {$C_2$}; 



    \path[->,draw,thick] 
    (A1) edge node {$l_A$} (B2) 
    (B1) edge node {$l_B$} (B2) 

    ; 

    \end{tikzpicture} 
    \caption{Model} 
    \label{fig:f1} 
\end{figure} 


\end{document} 

que quelqu'un peut me dire comment je peux obtenir cet effet?

Merci!

Répondre

1

This TeX.SX answer montre comment appliquer à votre cas une path d'un node au milieu de deux ther node s:

\documentclass[tikz]{standalone} 
\usetikzlibrary{calc} 

\begin{document} 
\begin{tikzpicture}[shorten >=1pt,node distance=3cm,auto]%,on grid 
\tikzstyle{state}=[shape=circle,thick,draw,minimum size=1.5cm] 

\node[state] (A1) {$A_1$}; 
\node[state,above of=A1] (B1) {$B_1$}; 
\node[state,above of=B1] (C1) {$C_1$}; 

\node[state,right of=A1] (A2) {$A_2$}; 
\node[state,above of=A2] (B2) {$B_2$}; 
\node[state,above of=B2] (C2) {$C_2$}; 

\path [->,draw,thick] (C1) -- ($ (B1) !.5! (B2) $); 
\path [->,draw,thick] (C1) -- ($ (A1) !.5! (B2) $); 

\path[->,draw,thick] 
    (A1) edge node[near start] {$l_A$} (B2) 
    (B1) edge node[near end] {$l_B$} (B2); 

\end{tikzpicture} 
\end{document} 

screenshot of output

Ceci est seulement un point de départ approximatif: s'il vous plaît poster un commentaire dire si ce croquis convient ou si vous souhaitez un développement ultérieur.

+1

Malheureusement, j'ai des modificateurs supplémentaires sur les étiquettes telles que 'near end' ou sur le bord comme' bend left'. Cela signifie que la solution du point central basé sur le calcul ne pointe pas toujours au bon endroit. De plus, j'essaie de montrer que C1 influence IA et IB, qui influencent alors B1-> B2. Donc, je cherche vraiment un moyen d'accéder en quelque sorte au nœud qui correspond aux étiquettes. Existe-t-il un moyen de définir une variable sur l'une des étiquettes? Je voudrais quelque chose de similaire à '(A1) nœud de bord [près de commencer] (lA) {$ l_A $} (B2)' de sorte que je puisse juste faire '(C1) bord (lA)' (cela ne fonctionne pas bien que) – par