以下代码实际上来自 PGF 手册。它运行良好,但我很难理解它(我是 TikZ 新手)
\documentclass{article} % say
\usepackage{tikz}
\usetikzlibrary{arrows,decorations.pathmorphing,backgrounds,positioning,fit,petri}
\begin{document}
\begin{tikzpicture}
[place/.style={circle,draw=blue!50,fill=blue!20,thick,
inner sep=0pt,minimum size=6mm},
transition/.style={rectangle,draw=black!50,fill=black!20,thick,
inner sep=0pt,minimum size=4mm}]
\node[place] (waiting) {};
\node[place] (critical) [below=of waiting] {};
\node[place] (semaphore) [below=of critical]{};
\node[transition] (leave critical) [right=of critical]{};
\node[transition] (enter critical) [left=of critical]{};
\draw [->] (enter critical) to (critical);
\draw [->] (waiting) to [bend right=45] (enter critical);
\draw [->] (enter critical) to [bend right=45] (semaphore);
\end{tikzpicture}
\end{document}
上面的内容将给我如下结果:
我的问题是:我该如何理解这两者bend right
?关于从顶部的圆圈开始到左侧的正方形的长箭头,在我看来更像是向左弯曲。它在什么意义上是向右弯曲?从左侧的正方形开始到底部的圆圈的长箭头也存在同样的问题。
答案1
箭头向左弯曲,但您却将它向右弯曲:
\documentclass[border=5pt]{article}
\usepackage{tikz}
\begin{document}
\centering
\begin{tikzpicture}
\draw [thick, -latex] (0,0) to (0,3);
\end{tikzpicture}
\begin{tikzpicture}[trim left=0pt, trim right=0pt]
\draw [thick, -latex] (0,0) to [bend right] (0,3);
\draw [line width=5pt, -stealth, red!80!blue] (-1,1.5) -- (0.4,1.5);
\end{tikzpicture}
\end{document}
答案2
(waiting)
不要从到画一条直线(enter critical)
,而是在预期方向的右侧画一条弯线。
此外,由于预期角度是 45 度,如果再弯曲 45 度,线条看起来就像以 90 度角分开。
尝试这个:
- 画一条不弯曲的线,你会看到“预期”的线
- 使用
bend left
选项来比较 - 尝试改变弯曲角度。