关于 Tikz angles 库中的 pic 命令的各种问题

关于 Tikz angles 库中的 pic 命令的各种问题

pic我对正在尝试实验的 tikz.angles 库中的命令有一些疑问(Tikz-pgf 手册中的文档对我来说仍然非常模糊)。

以下是一段代码

\documentclass[a4paper]{article}

\usepackage[english]{babel}
\usepackage{amsmath, amsthm, amssymb}
\usepackage[usenames,svgnames]{xcolor}
\usepackage{tikz-cd}
\usetikzlibrary{shapes,arrows,intersections}
\usetikzlibrary{matrix,fit,calc,trees,positioning,arrows,chains,shapes.geometric,shapes,angles,quotes}

\begin{document}

\begin{tikzpicture}

\draw (0,0) node{$\bullet$} node[left]{$O$};
\draw (0,0) circle(2cm);

\draw[->] (0,0)--(2.5,0) coordinate (X) node[right]{$x$};
\draw[->] (0,0)--(0,2.5) coordinate (Y) node[right]{$y$};

\draw[->,Aquamarine!50!black] (0,0)--($(0,0)!2cm!(4,3)$) node[midway,above left, Aquamarine!50!black]{$r$};
\draw ($(0,0)!2cm!(4,3)$) coordinate (P) node{$\bullet$} node[above right](P){$P$};

\draw[->,thick, Orchid!50!black] ($(0,0)!2cm!(4,3)$) -- ([turn]90:1cm) node[above, Orchid!50!black]{$\overrightarrow{v_e}$};
  \draw    pic["$\alpha$", draw=red, ->, angle eccentricity=1.2, angle radius=1cm]
    {angle=X--O--P};

\end{tikzpicture}
\end{document}

这给出了这张图片(请注意颜色可能会改变):

在此处输入图片描述

我有两个问题

  1. 有没有办法直接使用pic带有坐标的命令而不命名点?我尝试了各种版本,但\draw pic["$\alpha$", draw=red, ->, angle eccentricity=1.2, angle radius=1cm] {angle=(2.5,0)--(0,0)--($(0,0)!2cm!(4,3)$)}都没有成功
  2. 我怎样才能改变我的颜色alpha,我还没有找到有关这方面的任何文档。

然后有一个scope问题。这个图实际上是这个的一部分: 在此处输入图片描述 通过此代码获得:

\documentclass[a4paper]{article}

\usepackage[english]{babel}
\usepackage{amsmath, amsthm, amssymb}
\usepackage[usenames,svgnames]{xcolor}
\usepackage{tikz-cd}
\usetikzlibrary{shapes,arrows,intersections}
\usetikzlibrary{matrix,fit,calc,trees,positioning,arrows,chains,shapes.geometric,shapes,angles,quotes}

\begin{document}

\begin{tikzpicture}

\draw (0,0,0) coordinate (O) node[above left]{$O$};
\draw[->, thick] (0,0,0) -- (0,0,2) node[below left]{$y$};
\draw[->, thick] (0,0,0) -- (0,3,0) node[above]{$z$};
\draw[->, thick] (0,0,0) -- (2,0,0) node[right]{$x$};

\draw[->, red] (0,0,0) -- (0,1,0) node[left]{$\overrightarrow{u'_z}=\overrightarrow{u_z}$};

\draw[->, red] (0,0,0) -- (0,0,1) node[above left]{$\overrightarrow{u_y}$};
\draw[->, red] (0,0,0) -- (1,0,0) node[below]{$\overrightarrow{u_x}$};

\begin{scope}[rotate around y=30]
\draw[->, red] (0,0,0) -- (0,0,1) node[below]{$\overrightarrow{u'_y}$};
\draw[->, red] (0,0,0) -- (1,0,0) node[above]{$\overrightarrow{u'_x}$};
\end{scope}

\draw (1.5,2.5,0) node{$\bullet$} node[right]{$P$ (fixe dans $\mathcal{R}_R$)};


\begin{scope}[xshift=8cm,yshift=1.0cm]
\draw (0,0) node{$\bullet$} node[left]{$O$};
\draw (0,0) circle(2cm);

\draw[->] (0,0)--(2.5,0) coordinate (X) node[right]{$x$};
\draw[->] (0,0)--(0,2.5) coordinate (Y) node[right]{$y$};

\draw[->,Aquamarine!50!black] (0,0)--($(0,0)!2cm!(4,3)$) node[midway,above left, Aquamarine!50!black]{$r$};
\draw ($(0,0)!2cm!(4,3)$) coordinate (P) node{$\bullet$} node[above right](P){$P$};

\draw[->,thick, Orchid!50!black] ($(0,0)!2cm!(4,3)$) -- ([turn]90:1cm) node[above, Orchid!50!black]{$\overrightarrow{v_e}$};
  \draw    pic["$\alpha$", draw=red, ->, angle eccentricity=1.2, angle radius=1cm]
    {angle=X--O--P};
\end{scope}
\end{tikzpicture}
\end{document}

该翻译似乎不适用于该pic命令。

  1. 范围不起作用的原因是什么?

答案1

  1. 在我看来,您必须使用坐标名称。我猜内部使用\pgfpointanchor或类似的东西,这需要一个命名节点。无论如何,命名坐标可能是一种好的形式!
  2. 为了使角度标签(比如说)变为绿色,请设置text图片(或整个路径)的属性:

    \draw pic["$\alpha$", draw=red, text=green, ->, angle eccentricity=1.2, angle radius=1cm] {angle=X--O--P};
    
  3. 图片是相对于您使用的命名坐标绘制的,这些坐标不会随范围而平移。在这种情况下,您已重新定义了(X)图片(P)的后半部分,但(O)仍然是第一张图片的原点。要获得所需的结果,您也可以将坐标重新定义(O)为(平移后的)原点。不过对于这种情况,我实际上建议使用两个单独的 tikz 图片。然后,您可以像处理导入的图形或文本一样以任何您想要的方式排列、对齐和间隔它们。

相关内容