假设定义坐标a
和b
。可以画一条线连接这两个坐标(\draw (a) -- (b)
)。假设想要画一条线,相对于a
和向上移动 1 个单位b
。第一个猜测是命令\draw (a){}+(0,1) -- (b){}+(0,1)
。但是,此命令将点连接a+(0,1)
到点b
,大概是因为加法是在绘制命令之后进行的。如何获得所需的结果(从 到a+(0,1)
绘制b+(0,1)
?
梅威瑟:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\draw[fill] (0,0) circle (2pt) coordinate (a);
\draw[fill] (5,0) circle (2pt) coordinate (b);
\draw (a) -- (b);
\draw (a){}+(0,1) -- (b){}+(0,1);
\end{tikzpicture}
\end{document}
编辑:如何绘制相对于两个点的坐标的算术平均值移动的点的坐标(类似于\node at ($(((s1)+(s2))/2)+(0,1)$)
)。
答案1
你可以尝试一下,使用这个calc
库(参见13.5 坐标计算pgf 手册):
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\coordinate (a) at (2,2);
\coordinate (b) at (0,-2);
\node[draw=red] at (a) {a};
\node[draw=red] at (b) {b};
\draw[help lines] (-1,-3) grid (3,3);
\draw ($ (a) + (0,1) $) -- ($ (b) + (0,1) $);
\end{tikzpicture}
\end{document}
要回答后续问题,您可以使用部分修饰语(手册第 13.5.3 节)。例如,
(1,2)!.75!(3,4)
是“从 (1,2) 到 (3,4) 的四分之三处的坐标。” 一个完整的小例子:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\coordinate (a) at (2,2);
\coordinate (b) at (0,-2);
\node[draw=red] at (a) {a};
\node[draw=red] at (b) {b};
\draw[help lines] (-1,-3) grid (3,3);
\draw ($ (a) + (0,1) $) -- ($ (b) + (0,1) $);
\draw[blue,thick] (-1,2) -- ($ (a)!0.5!(b) $) -- (3,2);
\draw[magenta,thick] (2,-2) -- ($ (a)!0.75!(b) $) -- ($ (a)!0.25!(b) $) -- (3,2);
\end{tikzpicture}
\end{document}