使用调色板从一个节点到多个其他节点绘制多个箭头

使用调色板从一个节点到多个其他节点绘制多个箭头

这是上一个问题的延续:使用调色板绘制一组箭头

我想要的是

我想要绘制从一个节点到多个节点的多个箭头。从同一节点开始的每个箭头必须具有相同的颜色;但另一个节点必须具有以下颜色(其箭头具有相同的颜色), 等等。

您必须以最自动的方式实现以下目标:

我想要的是

我做了什么

此 MWE 经过改编,可以更好地处理该问题的答案:

\documentclass{article}

\usepackage{tikz}

\newcommand\totalnodes{5} % Define the total of nodes-1

\begin{document}

\begin{tikzpicture} % From https://tex.stackexchange.com/a/480466/152550
    \foreach \X in {0,...,\totalnodes} {
        \node[circle,draw,name=a\X] at (0,\X) {};
        \node[circle,draw,name=b\X] at (1,\X) {};
        % [actual node] * [0.75 (limits the final color to purple)] * 1/\totalsubjects
        \pgfmathsetmacro{\huenum}{\X*0.75*(1/\totalnodes)}
        \definecolor{mycolor}{hsb}{\huenum,1,1}
        \draw[-latex,mycolor] (a\X) to (b\X);
}
\end{tikzpicture}

\end{document}

我做了什么

如您所见,我找不到能够添加来自同一节点的更多箭头的算法。

我的想法是制作一个递归算法,遍历一些我想要获取箭头的节点,但我不知道如何从一个节点跳转到另一个节点,0然后2再跳转到5等等。

例如,首先我尝试将某些内容更改\draw[-latex,mycolor] (a\X) to (b\X);\draw[-latex,mycolor] (a\X) to (b$\X-0$);(新行)\draw[-latex,mycolor] (a\X) to (b$\X-1$);(新行)\draw[-latex,mycolor] (a\X) to (b$\X-2$);等,但编译器出现错误(正如预期的那样)。

谢谢!!

答案1

类似这样?您在列表中指定连接。第 0 个条目指定第 0 个 a 节点将与 b 节点 2 和 3 连接,依此类推。

\documentclass{article}

\usepackage{tikz}

\newcommand\totalnodes{5} % Define the total of nodes-1

\begin{document}

\begin{tikzpicture} % From https://tex.stackexchange.com/a/480466/152550
\def\LstCon{{"{2,3}","{1}","{2}","{2,3,4,5}","{4}","{1,4,5}"}}
    \foreach \X in {0,...,\totalnodes} {
        \node[circle,draw,name=a\X] at (0,\X) {};
        \node[circle,draw,name=b\X] at (1,\X) {};
        }
    \foreach \X in {0,...,\totalnodes} {
        \pgfmathsetmacro{\huenum}{\X*0.75*(1/\totalnodes)}
        \definecolor{mycolor}{hsb}{\huenum,1,1}
        \pgfmathsetmacro{\mylst}{\LstCon[\X]}
        \foreach \Y in \mylst       
         {\draw[-latex,mycolor] (a\X) to (b\Y);}
        }
\end{tikzpicture}

\end{document}

在此处输入图片描述

相关内容