轴环境中 TikZ 元素的相对极坐标

轴环境中 TikZ 元素的相对极坐标

我想用线来注释一个面片图,线的起点和终点分别以绝对极坐标和相对极坐标给出。

基于笛卡尔数据,呈现为以原点 (0,0) 为中心的圆形,这里用普通圆圈来模拟。

线条应从形状的圆周开始,以给定的角度指向形状外,并具有明确的长度。因此,使用相对的线的极坐标结尾观点。

使用 TikZ(左)看似简单的事情在axispgfplots(右)的环境中却失败了:如果使用相对极坐标,则倾斜角度和线的长度都不正确。

在此处输入图片描述

这里的相对极坐标有什么问题?

代码:

\documentclass{standalone}

\usepackage{pgfplots}
\pgfplotsset{compat=1.13}

\begin{document}

\begin{tikzpicture}
  \draw(0,0) circle[radius=0.01];
  \draw[blue] (0,0) circle[radius=1];
  \draw[thick] (45:1) -- ++(45:0.5);
\end{tikzpicture}

\begin{tikzpicture}
  \begin{axis}[tiny,enlargelimits,
  axis equal,
  xmin=-2,xmax=2,
  ymin=-1,ymax=1,
  xtick={-2,-1,0,1,2},
  ytick={-2,-1,0,1,2},
  grid=major,
  ]
  \draw[blue] (0,0) circle[radius=1];
  \draw[blue, dashdotted] (0,0) -- (45:2);
  \draw[thick] (45:1) -- ++(45:0.5);
%  \draw[thick] (45:1) -- (45:1.5); %absolute coordinates do work
  \end{axis}
\end{tikzpicture}

\end{document}

答案1

文档pgfplots指出

如 的文档中所述axis cs,通过 TikZ++操作符添加两个坐标可能会产生意想不到的效果。 正确的操作方式++axis direction cs:

angle:radius不幸的是,对于,没有隐式极坐标( ) axis direction cs:,这就是为什么你必须自己计算它们(但这很容易)。所以我们最终得到

%\draw[thick] (45:1) -- ++(45:0.5);
\draw[thick] (45:1) -- ++(axis direction cs:{0.5*cos(45)},{0.5*sin(45)});

相关内容