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}
这给出了这张图片(请注意颜色可能会改变):
我有两个问题
- 有没有办法直接使用
pic
带有坐标的命令而不命名点?我尝试了各种版本,但\draw pic["$\alpha$", draw=red, ->, angle eccentricity=1.2, angle radius=1cm] {angle=(2.5,0)--(0,0)--($(0,0)!2cm!(4,3)$)}
都没有成功 - 我怎样才能改变我的颜色
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
- 在我看来,您必须使用坐标名称。我猜内部使用
\pgfpointanchor
或类似的东西,这需要一个命名节点。无论如何,命名坐标可能是一种好的形式! 为了使角度标签(比如说)变为绿色,请设置
text
图片(或整个路径)的属性:\draw pic["$\alpha$", draw=red, text=green, ->, angle eccentricity=1.2, angle radius=1cm] {angle=X--O--P};
图片是相对于您使用的命名坐标绘制的,这些坐标不会随范围而平移。在这种情况下,您已重新定义了
(X)
图片(P)
的后半部分,但(O)
仍然是第一张图片的原点。要获得所需的结果,您也可以将坐标重新定义(O)
为(平移后的)原点。不过对于这种情况,我实际上建议使用两个单独的 tikz 图片。然后,您可以像处理导入的图形或文本一样以任何您想要的方式排列、对齐和间隔它们。