围绕一个圆圈画 n 条线

围绕一个圆圈画 n 条线

我正在尝试\nb从 画线(0,0)。所有线条间距均等。

我一直收到错误“缺失数字被视为零”。我在网上发现了很多类似的错误;这些错误可以通过将数学括在{}花括号中来解决。

我试过了,但还是不行。有人知道我的错误是什么吗?

\begin{figure}[h]                                                                
    \centering                                                                   
    \begin{tikzpicture}                                                          
        \newcommand\ir{2}%Inner radius                                           
        \newcommand\nb{5}%Number of bars                                         
        \newcommand\tta{2*pi/\nb}                                                
                                                                                 
        \foreach \i in {1,...,\nb} {                                             
            \newcommand\ctta{{cos(deg(\i*\tta))}}                                
            \newcommand\stta{{sin(deg(\i*\tta))}}                                
            \newcommand\ttta{{tan(deg(\i*\tta))}}                                
                                                                                 
            \newcommand\ltpcx{\ir*\ctta}                                         
            \newcommand\ltpcy{\ir*\stta}                                         
            \draw[] (0,0) -- (\ltpcx,\ltpcy);                                    
        }                                                                        
    \end{tikzpicture}                                                            
    \caption{General structure of a Data Bank in a MIDAS event.}                 
    \label{fig:BV_structure}                                                     
\end{figure}

答案1

sin除了使用和计算点数之外,cos如何使用(<ang>:<rad>)Ti 的语法Z:

\documentclass[tikz,border=3.14]{standalone}

\begin{document}
\begin{tikzpicture}
  \newcommand\ir{2}%Inner radius
  \newcommand\nb{5}%Number of bars
  \foreach \i in {1,...,\nb}
    {
      \draw (0,0) -- ({360*\i/\nb}:\ir);
    }
\end{tikzpicture}
\end{document}

在此处输入图片描述

添加小“T”部件,无需任何其他手动计算:

\documentclass[tikz,border=3.14]{standalone}

\begin{document}
\begin{tikzpicture}
  \newcommand\ir{2}%Inner radius
  \newcommand\nb{5}%Number of bars
  \foreach \i in {1,...,\nb}
    {
      \pgfmathsetmacro\ang{360*\i/\nb}
      % get the centre point of the line (0,0)--(\ang:\ir) as (tmp)
      \draw (0,0) -- coordinate(tmp) (\ang:\ir)
      % from that centre, draw perpendicular for 0.25 (+(<coord>) syntax)
            (tmp) -- +(\ang + 90:.25);
    }
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

您可以使用\pgfmathsetmacro来定义变量:

\documentclass[tikz]{standalone}
\begin{document}
    \begin{tikzpicture}             
        \pgfmathsetmacro{\ir}{2}
        \pgfmathsetmacro{\nb}{5} 
        \pgfmathsetmacro{\tta}{2*pi/\nb}      

        \foreach \i in {1,...,\nb} {                                             
            \pgfmathsetmacro{\ctta}{cos(deg(\i*\tta))}
            \pgfmathsetmacro{\stta}{sin(deg(\i*\tta))}  
            \pgfmathsetmacro{\ltpcx}{\ir*\ctta} 
            \pgfmathsetmacro{\ltpcy}{\ir*\stta}                                                                          
            \draw (0,0) -- (\ltpcx,\ltpcy);                           
        }                                                                  
    \end{tikzpicture} 
\end{document}

编辑供您参考,有几个问题和答案可以很好地解释pgfmathsetmacronewcommand用作变量之间的区别tikz

TikZ 中使用 \newcommand 和 \pgfmathsetmacro 的区别 \coordinate

定义 TikZ 常量的首选方法是什么?

但它们与您的问题没有直接关系。

答案3

pstricks带有和 的简短代码multido

\documentclass{article}
\usepackage[svgnames]{xcolor}%
\usepackage{pst-eucl, multido}

\begin{document}

\psset{unit=1.5cm, linewidth=1pt, linecolor=SteelBlue, tbarsize=1}
\begin{pspicture}(-3,-3)(3,3) 
\multido{\I = 0+72}{5}{\psline{-|}(0,0)(3;\I)}
\end{pspicture}

\end{document}

在此处输入图片描述

相关内容