我试图在三维图上标记一个角度,\tkzMarkAngle
该角度与\tdplotsetmaincoords
这就是我的意思,下面是一个最小的例子:
\documentclass[varwidth=true, border=2pt]{standalone}
\usepackage{tikz,tikz-3dplot}
\usepackage{tkz-euclide}
\usetkzobj{all}
\begin{document}
\tdplotsetmaincoords{0}{315}
\begin{tikzpicture}[tdplot_main_coords]
\coordinate (OX) at (1,0,0);
\coordinate (OO) at (0,0,0);
\coordinate (OY) at (0,1,0);
\tkzMarkAngle[fill=purple](OX,OO,OY)
\draw (OY) -- (OO) -- (OX);
\end{tikzpicture}
\end{document}
如您所见,我只是试图绘制一个角度并用实心圆弧标记它。但我得到的结果如下:
看起来圆弧旋转了应有角度的两倍。其他人有同样的结果吗?还是我的 tikz 版本有问题?
我在通过 macports 安装的 OSX、latex 和 tikz 上运行。
谢谢。
UPD1. 20 度旋转如下所示 ( \tdplotsetmaincoords{0}{20}
):
答案1
\tkzMarkAngle
正如您所提到的,和的行为似乎很奇怪\tdplotsetmaincoords
。作为一种解决方法,您可以使用该angles
库:
\documentclass[varwidth=true, border=2pt]{standalone}
\usepackage{tikz,tikz-3dplot}
\usepackage{tkz-euclide}
\usetkzobj{all}
\usetikzlibrary{angles}
\begin{document}
\tdplotsetmaincoords{0}{315}
\begin{tikzpicture}[tdplot_main_coords]
\coordinate (OX) at (1,0,0);
\coordinate (OO) at (0,0,0);
\coordinate (OY) at (0,1,0);
% \tkzMarkAngle[fill=purple](OX,OO,OY)
\draw (OY) -- (OO) -- (OX)
pic[fill=purple!20,angle radius=9mm] {angle = OX--OO--OY};
\end{tikzpicture}
\end{document}
结果:
一个更长的例子;bending
添加该库是为了改善弯曲箭头的外观:
\documentclass[varwidth=true, border=2pt]{standalone}
\usepackage{tikz,tikz-3dplot}
\usepackage{tkz-euclide}
\usetkzobj{all}
\usetikzlibrary{angles,bending}
\begin{document}
\tdplotsetmaincoords{30}{120}
\begin{tikzpicture}[
tdplot_main_coords,
markangle/.style={draw,->,>=latex}
]
\coordinate (OX) at (1,0,0);
\coordinate (OO) at (0,0,0);
\coordinate (OY) at (0,1,0);
\coordinate (OZ) at (0,0,2);
\path
pic[fill=purple!20,angle radius=5mm,markangle] {angle = OY--OO--OZ}
pic[fill=green!20,angle radius=5mm,markangle] {angle = OX--OO--OY}
pic[fill=blue!20,angle radius=5mm,markangle] {angle = OZ--OO--OX};
\draw
(OX) -- (OO)
(OY) -- (OO)
(OZ) -- (OO);
% \tkzMarkAngle[fill=purple](OX,OO,OY)
\end{tikzpicture}
\end{document}
答案2
肯定是 bug。你可以使用新版本的 tkz-euclide v2.42 (beta)这里