TikZ:等距离自动换行

TikZ:等距离自动换行

有没有一种优雅的方法可以将弧分成 n 个相等的部分?我在文档中讨论了球的表面积。SA = 2\pi r l因此,我想从具有 n(3、4 或 5)个线段近似值的弧开始,然后我将研究当 n 趋于无穷大时取和的极限。

我想不出在弧线上分割 n 条等距线的方法,其中 n 是我决定使用的数字。目前我只有弧线。

\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
\coordinate (O) at (0, 0);
\draw (O) arc[radius = 2, start angle = 15, end angle = 75];
\end{tikzpicture}
\end{document}

答案1

这是一个宏,它生成n用于近似圆弧的线段,实际圆弧以灰色显示:

在此处输入图片描述

笔记:

  • 这个例子n=3表明您可以从零度以外的角度开始。

代码:

\documentclass[tikz]{standalone}
\begin{document}

% Ensure we are not overriding any existing macro
\newcommand*{\DeltaAngle}{}
\newcommand*{\CurrentStartAngle}{}
\newcommand*{\CurrentEndAngle}{}
\newcommand*{\SegmentedArc}[5][]{%
    % #1 = draw options
    % #2 = number of segments
    % #3 = arc start angle
    % #4 = arc end angle
    % #5 = radius
    \draw [thin, gray] (#3:#5) arc [radius = #5, start angle = #3, end angle = #4];
    %
    \node [below, #1] at (#3:#5) {$n=#2$};
    \pgfmathsetmacro{\DeltaAngle}{(#4-#3)/#2}%
    \foreach \x in {1,...,#2} {%
        \pgfmathsetmacro{\CurrentStartAngle}{#3+(\x-1)*\DeltaAngle}%
        \pgfmathsetmacro{\CurrentEndAngle}{\CurrentStartAngle+\DeltaAngle}%
        \typeout{\string\CurrentStartAngle=\CurrentStartAngle, \string\CurrentEndAngle=\CurrentEndAngle}%
        \draw [#1] (\CurrentStartAngle:#5cm) -- (\CurrentEndAngle:#5cm);
    }%
}%
\begin{tikzpicture}
    \coordinate (O) at (0, 0);
    
    \SegmentedArc[thin, blue]{2}{0}{75}{2}
    
    \begin{scope}[xshift=1.0cm]
        \SegmentedArc[thin, red]{3}{15}{75}{2}
    \end{scope}
    \begin{scope}[xshift=2.0cm]
        \SegmentedArc[thin, brown]{4}{0}{75}{2}
    \end{scope}
\end{tikzpicture}
\end{document}

相关内容