考虑以下简单示例:
\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
\coordinate (a) at (0,0);
\coordinate (b) at (1,1);
\coordinate (c) at (2,0);
\draw (a) -- (b) -- (c);
\fill (a) circle (2pt);
\fill (b) circle (2pt);
\fill (c) circle (2pt);
\end{tikzpicture}
\end{document}
我对改进此代码很感兴趣。特别是我想避免手动绘制圆圈。想象一下涉及许多不同名称的顶点的情况。
我知道我可以用一些循环来代替填充
\foreach \i in {a,b,c}
\fill (\i) circle (2pt);
但我对更全局的魔法更感兴趣,那就是当 TikZ 遇到一个坐标时,填充某个固定半径(或尺寸)的圆(或任何其他形状)的方法。
额外的好处是可以针对某些顶点关闭解决方案。我相信解决方案是使用style
,但我不知道该怎么做。
答案1
您plot
可以使用mark
s。这样就可以使用标记*
、x
和。可以使用库加载更多绘图+
标记。ball
plotmarks
可用选项包括
mark
,mark repeat
,mark phase
,mark indices
,mark size
,- 样式
every mark
, mark options
(简单设置every mark
)和no marks
和no markers
(与 相同mark=none
)。
和plotmarks
图书馆
mark color
(为了其他带星号的半版本的颜色),text mark
(商标所用的文字text
),text mark as node
和text mark style
代码
\documentclass[tikz]{standalone}
\usetikzlibrary{plotmarks}
\begin{document}
\begin{tikzpicture}[anchor=mid west,
mark size=+2pt, mark color=blue, text mark=Ti\emph{k}Z, ball color=green]
\foreach \plm[count=\cnt] in {*, x, +, ball, % always loaded, ball only with TikZ
-, |, o, asterisk, star, 10-pointed star,
oplus, oplus*, otimes, otimes*, triangle, triangle*, diamond, diamond*,
halfdiamond*, halfsquare*, halfsquare right*, halfsquare left*,
pentagon, pentagon*, Mercedes star, Mercedes star flipped, halfcircle, halfcircle*,
heart, text}
\draw[mark options={fill=red}, shift=(down:\cnt/2.5)]
plot[mark=\plm] coordinates {(0,0) (1,.5) (2,0)} node {\quad\ttfamily\plm};
\end{tikzpicture}
\end{document}