如果我理解正确,该\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}