将原点(0,0)移动到 TikZ 中的新坐标

将原点(0,0)移动到 TikZ 中的新坐标

我看到了一些解释这里如何转移原点。但在环境结束时它会被恢复。

我想要的是一个可以移动但不恢复的命令。我认为这可能通过节点实现。但这只是一个解决方法的想法。

我尝试了这个命令\scope[shift={(0,-5)}],但它当然不起作用。

我想要实现的目标是这样的:

\draw [->, very thick] (0, 0) -- (0,-1);
\scope[shift={(0,-1)}]
\draw [->, very thick] (0, 0) -- (0,-1);
\scope[shift={(0,-1)}]
\draw [->, very thick] (0, 0) -- (0,-1);

产生三支连在一起的箭。我知道这可以通过其他方式实现,但我认为像这样的命令非常有用。

答案1

我不确定这种方法是否有用,但\tikzset可以从它出现的点改变大多数 tikz 参数,所以......

\documentclass[tikz, border=5pt]{standalone}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}
    \draw [->, very thick] (0, 0) -- (0,-1);
    \tikzset{shift={(0,-1)}}
    \draw [->, very thick] (0, 0) -- (0,-1);
    \tikzset{shift={(0,-1)}}
    \draw [->, very thick] (0, 0) -- (0,-1);
\end{tikzpicture}
\end{document}

Result

答案2

\draw [->] (0, 0) -- (0,-1);
\begin{scope}[yshift=-1cm]
\draw [->] (0, 0) -- (0,-1);
\end{scope}
\begin{scope}[yshift=-2cm]
\draw [->] (0, 0) -- (0,-1);
\end{scope}

enter image description here

笔记:

  • 作为经验丰富的 TeX.SE 用户,您应该提供完整的小文档,这样可以帮助那些愿意帮助您的人。上面的例子是我在我的tikzpicture测试平台上测试的,其设置可能与您的文档不同,所以我没有提供它们。
  • scope[<options>]是错误的语法,正确的是\begin{scope}[<options>] ... \end{scope}
  • 图像代码的范围部分的每次移位都是相对于坐标的(0,0),因此需要相应地增加移位量,否则第二次移位的图像部分将与前一个部分重叠。
  • 对于只向一个方向移动,您可以使用xshift=...yshift=...

相关内容