在 foreach 语句中将节点放置在圆弧的中间

在 foreach 语句中将节点放置在圆弧的中间

这个问题类似于这个,不同之处在于我想在 foreach 循环期间放置我的节点。

梅威瑟:

\documentclass[border=5pt,tikz]{standalone}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
    \def\thet{20};
    \def\radius{3.7};
    \foreach \ii in {1,2,...,18}
    \draw ({(\ii-1)*\thet}:\radius) arc [start angle = {(\ii-1)*\thet}, end angle ={(\ii)*\thet}, radius = \radius] node[midway] {$\theta_{\ii}$};
\end{tikzpicture}
\end{document} 

结果是:

theta 应该始终位于圆外 我希望 theta 始终位于圆外(位于它们来自的圆弧的顶点旁边),但如果我使用定位关键字(例如right或),above它会将所有 theta 切换到相同的方向,而这不是我想要的。

答案1

将节点锚点设置为中间角度 + 180 怎么样?

\documentclass[border=5pt,tikz]{standalone}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
    \def\thet{20};
    \def\radius{3.7};
    \foreach \ii in {1,2,...,18}
    \draw ({(\ii-1)*\thet}:\radius) arc [start angle = {(\ii-1)*\thet}, end
    angle ={(\ii)*\thet}, radius = \radius]
    node[midway,anchor={(\ii-1/2)*\thet+180}] {$\theta_{\ii}$};
\end{tikzpicture}
\end{document} 

在此处输入图片描述

相关内容