在绘制函数连接坐标之间使用 tikzmath

在绘制函数连接坐标之间使用 tikzmath

如果我理解正确,该\draw函数允许用线连接点,然后(如果线回到同一点)填充轮廓形状。如果使用该-- ( , )命令,它将仅从前一个点到该点绘制一条线。我想使用该tikzmath函数在循环中生成点(当点位于由基本函数定义的曲线上时很有用)foreach并连接后续点。下面是尝试对圆执行此操作:

\documentclass[tikz]{standalone}

\begin{document}
\usetikzlibrary{math}
\def\npts{100}
    \begin{tikzpicture}
    \draw (0, 0) -- (0, 0)
    \foreach \num in {1, 2, ..., \npts}
    {
        \tikzmath{
            \xspace = 2*pi/\npts;
            \t1 = \xspace*(\num - 1);
            \x1 = sin(\t1);
            \y1 = cos(\t1);
        }
        -- (\x1, y1)
    }
    -- cycle;
    \end{tikzpicture}
\end{document} 

看起来该\tikzmath命令\draw以某种方式中断了命令,导致其无法编译。有什么方法可以规避这种情况吗?

答案1

是的,至少有一种方法:在绘制选项中使用评估(代替 \tikzmath)并定义两个函数 x(i)和 y(i)。

\documentclass[tikz]{standalone}

\begin{document}
\usetikzlibrary{math}
    \begin{tikzpicture}
    \draw[
          evaluate={
               \npts=100;
               \xspace = 360/\npts; % 2pi=360
               %
               function x(\i){
                      \t=\xspace*(\i - 1);
                      return cos(\t);
                      };
             %
              function y(\i){
                     \t=\xspace*(\i - 1);
                      return sin(\t);
                     };
       }
           ] (0, 0) foreach \num in {1, 2, ..., \npts}
                      {
                        -- ({x(\num)},{y(\num)})
                      }
             -- cycle;
    \end{tikzpicture}
\end{document} 

相关内容