
Возможный дубликат:
как нарисовать специальную линию на рисунке
Я использую код ниже, чтобы нарисовать картинку, однако линия от s2 до s4 прямая, см. изображение.
Однако мне нужна линия под углом, как красная линия на картинке. Может ли кто-нибудь помочь мне, как это сделать?
\usepackage{tikz}
\usetikzlibrary{trees}
\resizebox{.5\textwidth}{!}{
\tikzset{level 1/.style={level distance=0.7cm, sibling distance=3cm}}
\tikzset{level 2/.style={level distance=0.7cm, sibling distance=6cm}}
\tikzset{bag/.style={text centered,yshift=-0.2cm}}
\begin{tikzpicture}[grow=down, -stealth]
\node[bag]{$S_0{:}(B,true,0)$}
child{ edge from parent node[right]{$\lsInvoke \_ DS$}; \node[bag]{$S_1{:}(R_{good})$}
child{ edge from parent node[right]{and}; \node[bag]{$S_2{:}(and)$}
child[missing]
child{ edge from parent node[right=0.1cm]{$[else]$}; \node[bag]{$S_3{:}(A_1)$}
}
child{ edge from parent node[right=0.9cm]{$[if]$}; \node[bag]{$S_4{:}(R_{good})$}
}
}
};
\end{tikzpicture}}
решение1
Я не могу скомпилировать ваш код и не имею никакого опыта работы с деревьями, которые, по-видимому, рисуют путь за вас. Однако это должно продемонстрировать концепцию, которую, как я думаю, вы ищете:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\coordinate (A) at (0,0);
\coordinate (B) at (5,-1);
\draw (A) -- (B);
\draw[thick,dashed,red,->] (A) -| (B);
\end{tikzpicture}
\end{document}
который производит:
Наиболее важной частью здесь для вас является использование -|
вместо --
для создания пути в прямолинейной системе координат вместо стандартной. При использовании с draw, вместо рисования прямой линии, рисуются компоненты этой линии.
может быть, вы просто можете создать именованные координаты в точках S_2 и S_4 и наложить на них прямолинейный путь?