![我可以根据 tikz 中的前一个点而不是当前点进行绘制吗?](https://linux22.com/image/462705/%E6%88%91%E5%8F%AF%E4%BB%A5%E6%A0%B9%E6%8D%AE%20tikz%20%E4%B8%AD%E7%9A%84%E5%89%8D%E4%B8%80%E4%B8%AA%E7%82%B9%E8%80%8C%E4%B8%8D%E6%98%AF%E5%BD%93%E5%89%8D%E7%82%B9%E8%BF%9B%E8%A1%8C%E7%BB%98%E5%88%B6%E5%90%97%EF%BC%9F.png)
我想我以前见过这样的命令。使用+
和++
我们可以定义相对于路径上先前点的坐标。我想知道是否--
还有其他版本允许我从前一个点而不是当前点开始绘制一条线。例如,考虑这个 MWE:
\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
\draw (0,0) -- (0.5,0) -- +(0,1) --++ (0.5,0);
\end{tikzpicture}
\end{document}
得出
修改 MWE 的最简单方法是什么
反而?
理想情况下,我希望使用单个\draw
命令来完成此操作,而无需执行诸如\draw (0,0) -- (0.5,0) -- +(0.5,0) (0.5,0) -- (0.5,1);
通过重复其中一个点来解决问题之类的操作。我只想将四个点中的每一个都写一次。
原因是我正在制作一个使用一些随机点的插图,如果不对实现进行重大更改,我可能无法再次获取它们的坐标。因此,在我的目标中,四个点中的每一个都是随机排序的,我无法将它们写入两次。
答案1
正如评论中提到的,coordinate
可以使用:
%! TEX program = pdflatex
\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
\draw (0,0) -- (0.5,0) coordinate (tmp) -- +(0,1) (tmp) --++ (0.5,0);
\end{tikzpicture}
\end{document}
答案2
问题是它+
没有更新当前点,但是它更新了路径的起点。
对于您的 MWE 来说,一个可能的解决方案可能是:
\documentclass[tikz, border=1cm]{standalone}
\begin{document}
\begin{tikzpicture}
\draw (0,0) -- (0.5,0) -- +(0,1) |-++ (0.5,0);
\end{tikzpicture}
\end{document}
或者
\documentclass[tikz, border=1cm]{standalone}
\begin{document}
\begin{tikzpicture}
\draw (0,0) -- +(1,0) (0.5,0) -- +(0,1);
\end{tikzpicture}
\end{document}