让 TikZ 进行某些计算

让 TikZ 进行某些计算

我想画一幅图来说明为什么在绕某个点旋转时不变的矢量场在二维中不一定是径向的,而是在 3D 中需要是径向的。这个问题将集中在 2D 部分。目前,我有:

在此处输入图片描述

\begin{tikzpicture}
\draw (0,0) circle (2cm);
\draw[->] (-2,0) -- (-2.5,0.25);
\draw[->] (-1.75,0.9682) -- (-2.1049,1.4001);
\end{tikzpicture}

所以我有一个圆,我想有更多与第一个圆长度相同、相对于径向角度与第一个圆相同的微小矢量。如何让 TikZ 计算圆上矢量的起点和终点?更准确地说,我希望每 1/4 厘米有一个,所以我有一个起始广告 (-2,0) 和一个 (-1.75,…),我需要 (-1.5,…),(-1.25,…),(-1,…),(-0.75,…),(-0.5,…),(-0.25,…),(0,2),(0.25,…),(0.5,…),(0.75,…),(1,…),(1.25,…),(1.5,…),(1.75,…),(2,0) 处的矢量,具有正负 y 坐标。

答案1

你是指这样的吗?

这将使径向矢量偏移指定的量\offset

在此处输入图片描述

笔记:

  • 根据@Bordaigorl 的建议,我画了circle 径向向量可产生更好的线条质量,因为圆位于径向向量的顶部。

代码:

\documentclass{article}
\usepackage{tikz}

\tikzset{radial vector/.style={thick, blue, -latex}}
\begin{document}
\begin{tikzpicture}

\newcommand{\offset}{10}
\foreach \x in {0,30,...,180} {
    \draw[radial vector] (\x:2cm) -- (\x+\offset:2.5cm);
    }
    
\draw [thick] (0,0) circle (2cm);
\end{tikzpicture}
\end{document} 

答案2

您也可以使用rotate around = {<angle>: (<x>, <y>)}

\documentclass{article}
\usepackage{tikz}

\tikzset{radial vector/.style={thick, blue, -latex}}
\begin{document}
\begin{tikzpicture}
\newcommand{\offset}{40}
\foreach \x in {0,30,...,180} {
    \draw[radial vector,rotate around={\offset:(\x:2cm)}] (\x:2cm) -- (\x:2.5cm);
    }
\draw [thick] (0,0) circle (2cm);
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容