我想用一个小圆圈装饰这个带圆角的阴影正方形的顶部边缘。(希望我使用下面定义的装饰。我的反复尝试只得到了错误。)
\usepackage{tikz}
\usetikzlibrary{positioning, math, decorations.markings,calc,shapes.misc}
\usepgfmodule{decorations}
\begin{document}
\begin{tikzpicture}
\draw[fill=gray, rounded corners, decoration={markings,mark=at position .5 with {\draw[black, fill=white] circle[radius=2pt];}}]
(0,0) -- (0,1) -- (1,1) NEED LITTLE CIRCLE HERE -- (1,0)-- cycle;
\end{tikzpicture}
\end{document}
答案1
“在 tikz 中装饰循环的边缘” 的答案是使用edge[decorate]
。
\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{decorations.markings}
\begin{document}
\begin{tikzpicture}
\draw[fill=gray, rounded corners, decoration={markings,mark=at position .5 with {\draw[black, fill=white] circle[radius=2pt];}}]
(0,0) -- (0,1) edge[decorate] (1,1) --
(1,1) -- (1,0)-- cycle;
\end{tikzpicture}
\end{document}
这里有一个扩展评论,因为另一篇文章指出了已经多次指出的内容,例如这里:您可以使用pic
来表示箭头。我想补充一下,您需要sloped
和allow upside down
键才能使其正常工作。
\documentclass[tikz,border=3mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
\begin{document}
\begin{tikzpicture}[circ/.style={circle, draw, fill=white, inner sep=1.5pt},
pics/arr/.style={code={\draw[-{Stealth[length=#1,fill=black]}] (-#1/2,0) --
(#1/2,0); }},pics/arr/.default=1ex]
% https://tex.stackexchange.com/a/430486
\draw[fill=gray, rounded corners]
(0,0) -- (0,1) -- node[circ]{} (1,1) --
pic[sloped,allow upside down]{arr} (1,0) --
pic[sloped,allow upside down]{arr=1.2ex} cycle;
\end{tikzpicture}
\end{document}
答案2
一个简单的解决方案,在需要的地方使用node
边框:
\documentclass[border=3mm]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw[fill=gray, rounded corners]
(0,0) -- (0,1) -- node[circle, draw, fill=white, inner sep=1.5pt] {} (1,1) -- (1,0) -- cycle;
\end{tikzpicture}
\end{document}
附录:您还可以使用pic
包含箭头等的节点来代替选定形状的节点。例如:
\documentclass[border=3mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
\begin{document}
\begin{tikzpicture}[
arr/.pic = {\draw[-{Straight Barb[width=3pt]}] (-1pt,0) -- (1pt,0);}
]
\draw[fill=gray, rounded corners]
(0,0) -- (0,1) -- pic {arr} (1,1) -- (1,0) -- cycle;
\end{tikzpicture}
\end{document}