改变 tikz 中边缘的点形状?

改变 tikz 中边缘的点形状?

我想在 tikz 中绘制两个节点之间的边,但这条边应该是“点状”的,而且点必须是不同的形状(不是点或虚线)。目前,我的目标是将点的形状变成一个星号 (*)。但是,一个好的解决方案应该是足够通用的,这样我就可以定义任何合理的形状(比如三角形、星形、六边形)并以虚线样式获得边。

编辑:感谢您的评论,我设法让一些东西工作了。但是,我仍然遇到了一些问题。现在我有以下 MWE:

\documentclass{article}
\usepackage[utf8]{inputenc}

\usepackage{tikz}
\usepackage{subcaption}
\usetikzlibrary{arrows}
\usetikzlibrary{snakes}
\usetikzlibrary{shapes.geometric}
\usetikzlibrary{shapes}
\usetikzlibrary{decorations.shapes}
\usetikzlibrary{positioning}
\usetikzlibrary{patterns}

\begin{document}

    \begin{tikzpicture}[->,=>stealth'] 
        \node[draw,circle,fill=black] (a) at (0,-0.5) {};
        \node[draw,circle,fill=black] (b) at (3.5,-3) {};
        \path[very thick]
            (a) edge[decorate,decoration={crosses, shape evenly spread=6, shape size={.15cm}}] node {} (b)
        ;

    \end{tikzpicture}
\end{document}

问题是shape evenly spreadshape sep选项对我来说似乎不起作用。

还有人有同样的问题吗?无论我如何改变其中一个的参数,它生成的数字始终相同。

答案1

shape evenly spreadshape sep不是crosses装饰的有效选项。但您可以使用segment length来更改十字(中心)之间的距离。

在此处输入图片描述

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{decorations.shapes}

\begin{document}
    \begin{tikzpicture}
        \path[very thick] (0,-.5) edge[decorate, decoration={crosses, segment length=7mm, shape size=.15cm}] node {} (3.5,-3);
        \path[very thick, red] (1,-.5) edge[decorate, decoration={crosses, segment length=5mm, shape size=.15cm}] node {} (4.5,-3);
        \path[very thick, blue] (2,-.5) edge[decorate, decoration={crosses, segment length=2mm, shape size=.15cm}] node {} (5.5,-3);
    \end{tikzpicture}
\end{document}

请注意,您可以定义自己的风格,使代码更简单一些:

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{decorations.shapes}

\tikzset{mycrosses/.style={very thick, decorate, decoration={crosses, segment length=#1, shape size=.15cm}},
    mycrosses/.default={7mm}}

\begin{document}
    \begin{tikzpicture}
        \draw[mycrosses] (0,-.5) -- (3.5,-3);
        \draw[mycrosses=5mm, red] (1,-.5) -- (4.5,-3);
        \draw[mycrosses=2mm, blue] (2,-.5) -- (5.5,-3);
    \end{tikzpicture}
\end{document}

相关内容