我在 TikZ 中用以下代码构建了一个图表
\node[...] (1) at (0,0) {1};
\node[...] (2) at (1,1) {2}
edge (1);
我想在 1 和 2 之间的边缘处添加一条平行于边缘的短线(带箭头),距离边缘有一段距离(并在短线上附加标签)。有没有一种简单的方法可以做到这一点,而无需计算坐标?
答案1
您可以使用装饰,就像 Claudio Fiandrino 指出的答案中那样,如果您的绘图中有多个这样的箭头,这会特别有用。
对于个别特殊情况可能有用的不同方法如下:
\usetikzlibrary{calc}
\begin{tikzpicture}
\node[] (1) at (0,0) {1};
\node[] (2) at (1,1) {2}
edge (1);
\draw[->] ($(1)!0.3!(2)!1mm!90:(2)$) -- ($(1)!0.7!(2)!1mm!90:(2)$)
node[midway,sloped,above] {\tiny label};
\end{tikzpicture}
使用的语法称为“插值坐标”。在上面的代码中,您可以调整量0.3
和0.7
(箭头开始和结束的线段长度的分数)和1mm
(平行箭头和主线段之间的距离)。如果您想要平行箭头,也可以90
用替换-90
以下原始段(在这种情况下,当然,您应该使用below
标签选项)。
答案2
在距离 1cm 处构建与 (a)--(b) 平行线的方法:
\draw ($(a)!0cm!(b)!-1cm!90:(b)$) -- ($(b)!0cm!(a)!1cm!90:(a)$);