LaTeX 中多边形的内圆和外圆

LaTeX 中多边形的内圆和外圆

如何在 LaTeX 中绘制一个圆形及其周围的多边形,例如八边形?

答案1

我该怎么画你?让我数一数!
我可以用 TikZ 和 PSTricks 以及图片画你

...但我的扫描结果离开了我,我恢复了正常的操作程序。

已编辑:我原来的方法是使用节点形状,但 Debilski 在上面同时发布了该方法,所以这里是另一种 TikZ 方法。(不过,我会保留我的原始图片)。这种方法更像 TikZ 的“圆形”和“矩形”命令(虽然不完全一样),因为它看起来有点像通用多边形,但实际上它只是一个常规的 LaTeX 命令,可以扩展为正确的绘图指令。该命令的参数是边数和半径。

\documentclass{minimal}

\usepackage{tikz}
\usetikzlibrary{calc}

\newcommand{\polygon}[2]{%
  let \n{len} = {2*#2*tan(360/(2*#1))} in
 ++(0,-#2) ++(\n{len}/2,0) \foreach \x in {1,...,#1} { -- ++(\x*360/#1:\n{len})}}

\begin{document}

\begin{tikzpicture}
\draw[red,dashed] (0,0) circle (1);
\draw (0,0) \polygon{8}{1};
\draw[red,dashed] (3,0) circle (1);
\draw (3,0) \polygon{4}{1};
\draw[red,dashed] (6,0) circle (1);
\draw (6,0) \polygon{7}{1};
\end{tikzpicture}

\end{document}

结果:

再次出现圆形和多边形


以下内容来自我最初的回答,如上所述,它与 Debilski 给出的回答相同,但由于该回答没有包含图片,因此我将它们保留在这里。

圆形和多边形

答案2

TikZ/PGF 中有一个例子手动的

\documentclass{minimal}
\usepackage{tikz}
\usepgflibrary{shapes}
\begin{document}
\begin{tikzpicture}
  \draw[dashed] (10,0) circle (1cm);
  \node[regular polygon, regular polygon sides=8, draw, inner sep=0.707cm] at (10,0) {};
\end{tikzpicture}
\end{document}

答案3

重写答案——我错过了关于内切圆的要点

在 Metapost 中:

  \documentclass{article}
  \usepackage{luamplib}
  \begin{document}
  \begin{mplibcode}
  beginfig(1)
    pair vert[];
    n:=5; radius=3cm;
    for i=0 upto n: 
        vert[i] = radius * dir(360*i/n);
    endfor;
    draw for i=0 upto n-1: vert[i] -- endfor cycle withcolor red; 
        % polygon
    draw for i=0 upto n-1: vert[i] .. endfor cycle withcolor green; 
        % outer circle
    draw for i=0 upto n-1: 1/2*(vert[i]+vert[i+1]) .. endfor cycle withcolor blue; 
        % inner circle, using midpoints.
  endfig;
  \end{mplibcode}
  \end{document}

它利用了 mplib,仅在 Luatex 中可用,因此您必须使用 进行编译lualatex。它给出:

在此处输入图片描述

这种方法的好处在于,您可以使用线的中点来计算内部圆,而不是使用魔法数字或三角恒等式,从而给出更明显正确的代码。

答案4

您可能在这个网站的 tex 专用版本上更幸运:http://tex.stackexchange.com

尽管如此,您还是应该尝试使用 PSTricks 包并逐点或逐弧绘制您需要的任何形状。

例如,以下是绘制三角形和圆形的方法:

\begin{pspicture}(6,6)
   %% Triangle in red
   \psline[linecolor=red](1,1)(5,1)(1,4)(1,1)

   %% Circle in blue with radius 1:
   \pscircle[linecolor=blue](3,2.5){1}
\end{pspicture}

对于其他 n 边多边形,使用与上面三角形类似的形状,为形状中的每个顶点绘制一个点。

相关内容