Utilice tikzmath entre las coordenadas de conexión con la función de dibujo

Utilice tikzmath entre las coordenadas de conexión con la función de dibujo

Si entiendo correctamente, la \drawfunción permite conectar puntos con líneas y luego (si las líneas vuelven al mismo punto) rellenar la forma delineada. Si uno usa el -- ( , )comando, simplemente dibujará una línea desde el punto anterior hasta este punto. Me gustaría usar la tikzmathfunción para generar puntos (sólo útil cuando los puntos están en una curva definida por una función elemental) en un foreachbucle y conectar puntos posteriores. A continuación se muestra un intento de hacer eso para un círculo:

\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} 

Parece que el \tikzmathcomando interrumpe el \drawcomando de una manera que hace que no se compile. ¿Hay alguna forma de evitar esto?

Respuesta1

Sí, hay al menos una forma: usar evaluar (en lugar de \tikzmath ) dentro de las opciones de dibujo y definir dos funciones x(i) e 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} 

información relacionada