我有一个命名点列表(从mark-1
到mark-26
),我想将它们用作多边形的顶点,多边形应填充蓝色。
我不想手动将它们写在路径中,因为它们会在文档的其他版本中发生变化(从 26 变为 20 或类似的)。
我尝试过这个:
\newcommand{\aaa}{
\foreach \x [count=\xi from 2] in {1,...,25} {(mark-\x) -- (mark-\xi)}
};
\fill[blue] \aaa -- (mark-1) -- cycle;
但似乎\aaa
只抓住了最后 2 点(25 和 26)。
更新:由于答案需要一些细节,我使用沿路径的装饰来生成节点:
\begin{scope}[
every path/.style={
decoration={
markings,
mark=between positions 0.57 and 1.2 step 6pt with {
\node[
red,
%nodes going from mark-1 to mark-26
name=mark-\pgfkeysvalueof{/pgf/decoration/mark info/sequence number}
] circle (2pt);
}
}
}
]
% load base compound path
\input{img/comp}
\end[scope]
谢谢
答案1
像这样吗?
\documentclass[tikz,border=0.125cm]{standalone}
\begin{document}
\begin{tikzpicture}
% Create random(ish) points
\foreach \i in {1,...,26}
\fill [opacity=0.5] (360/26*\i:1+rnd*1) circle [radius=.025] coordinate (mark-\i);
% Join them up
\fill [opacity=0.5,blue]
(mark-1) \foreach \i in {2,...,26}{ -- (mark-\i) } -- cycle;
\end{tikzpicture}
\end{document}