![嵌套的 TikZ 图片(双角符号)](https://linux22.com/image/419177/%E5%B5%8C%E5%A5%97%E7%9A%84%20TikZ%20%E5%9B%BE%E7%89%87%EF%BC%88%E5%8F%8C%E8%A7%92%E7%AC%A6%E5%8F%B7%EF%BC%89.png)
编辑:@js bibra 指出我如何用多个圆弧标记一个角度?
看起来我的问题有点重复,但仍然存在它是否有意义以及如何嵌套图片的问题,以及如何angle
实现调用语法?
我想定义自己的图片来创建这样的双角度:
理想情况下,新的双角度图dangle
应该像正常图一样工作angle
。我的尝试是创建一个新的图,其中绘制了两次角度:
\documentclass[tikz, border = 0.5 cm]{standalone}
\usetikzlibrary {angles}
\tikzset{
pics/dangle/.style args={#1--#2--#3}{
code={
\coordinate (AA) at #1;
\coordinate (BB) at #2;
\coordinate (CC) at #3;
% \draw pic [draw, angle radius=6 mm] {angle = AA--BB--CC}; %not ok
% \draw pic [draw, angle radius=7 mm] {angle = AA--BB--CC}; %not ok
\draw[red] (AA)--(CC); %just for testing
}
}
}
\begin{document}
\begin{tikzpicture}
\coordinate (A) at (5,0);
\coordinate (B) at (0,0);
\coordinate (C) at (2,3);
\draw pic [draw, green] {angle = A--B--C};
\draw pic {dangle={(A)--(B)--(C)}} ;
\draw[thick] (A) node[right]{A} -- (B) node[left]{B} -- (C) node[right]{C};
\end{tikzpicture}
\end{document}
我无法angle
在自己的图片中使用。可以嵌套图片吗?怎么做?我创建了临时坐标(AA)
,(BB)
因为(CC)
手册中写道:
⟨A⟩、⟨B⟩、⟨C⟩三个点必须是节点或坐标的名称,不能使用“(1,1)”这样的直接坐标。
-但我仍然无法让它工作!
另一件事是调用语法angle = A--B--C
与不同dangle={(A)--(B)--(C)}
。有人能解释一下为什么会这样或如何纠正它吗?
答案1
尝试
\documentclass[tikz, border =3mm]{standalone}
\usetikzlibrary {angles}
\begin{document}
\begin{tikzpicture}
\coordinate[label=right:A] (A) at (5,0);
\coordinate[label= left:B] (B) at (0,0);
\coordinate[label=above:C] (C) at (2,3);
%
\pic [draw=green, double] {angle = A--B--C};
%
\draw[thick] (A) -- (B) -- (C);
\draw[red] (C) -- (A);
\end{tikzpicture}
\end{document}
这是您要找的吗?您可以使用 调整弧线之间的距离double distance=dimension
,例如double distance=5pt
,将其添加到\pic
选项中。
附录1:
现在我意识到,你的问题实际上与你提供链接的问题重复。如果你想嵌套更多pic
,只需用不同的方式编写更多内容angle radius
:
\documentclass[tikz, border =3mm]{standalone}
\usetikzlibrary {angles}
\begin{document}
\begin{tikzpicture}
\coordinate[label=right:A] (A) at (5,0);
\coordinate[label= left:B] (B) at (0,0);
\coordinate[label=above:C] (C) at (2,3);
% see different angle radius
\pic [draw=green, angle radius=7mm] {angle = A--B--C};
\pic [draw=green, angle radius=8mm] {angle = A--B--C};
\pic [draw=green, angle radius=9mm] {angle = A--B--C};
%
\draw[thick] (A) -- (B) -- (C);
\draw[red] (C) -- (A);
\end{tikzpicture}
\end{document}
附录2:
看来您的问题在于纠正样式\dangle
定义。您尝试过,但无法在途中定义。相反,您可以定义新命令,它将绘制两个圆弧作为角度标记:
\documentclass[tikz, border = 0.5 cm]{standalone}
\usetikzlibrary {angles}
\newcommand\dangle[3]{ % <---
\pic [draw, angle radius=6 mm] {angle = #1--#2--#3};
\pic [draw, angle radius=7 mm] {angle = #1--#2--#3};
}
\begin{document}
\begin{tikzpicture}
\coordinate[label=right:A] (A) at (5,0);
\coordinate[label= left:B] (B) at (0,0);
\coordinate[label=above:C] (C) at (2,3);
%
\dangle{A}{B}{C};
\draw[thick] (A) -- (B) -- (C);
\end{tikzpicture}
\end{document}
您将获得:
如果您喜欢有颜色的弧,那么您只需要为角度定义添加颜色。例如
\pic [draw=green, angle radius=6 mm] {angle = #1--#2--#3}
\pic [draw=red, angle radius=7 mm] {angle = #1--#2--#3}
结果是:
用类似的方法,您可以为特定角度定义更多弧的标记命令。
答案2
https://tex.stackexchange.com/a/457830/197451
\documentclass[tikz,border=3.14mm]{standalone}
\usetikzlibrary{angles}
\begin{document}
\begin{tikzpicture}[double arc/.style={double,double distance=2pt},
% triple arc/.style={double distance=4pt,
% pic actions/.append code=\tikzset{postaction={draw}}}
]
\coordinate (A) at (5,0);
\coordinate (B) at (0,0);
\coordinate (C) at (2,3);
\draw[thick] (A) node[right]{A} -- (B) node[left]{B} -- (C) node[right]{C};
\draw pic [draw,double arc,angle radius=1cm] {angle=A--B--C};
\end{tikzpicture}
\end{document}