
내가 올바르게 이해했다면 이 \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}