tikz 中的基本算术?

tikz 中的基本算术?

如何在 tikz 中将两个数字相加?乘法似乎很简单...

我想“交错”下图中的节点,因此同一层中的节点位于下面层的节点之间,而不是直接位于它们之上。

\documentclass{article}
\usepackage{tikz}
\begin{document}


\def\layersep{1.5cm}
\def\unitsep{1.5cm}

\begin{tikzpicture}[shorten >=1pt,->,draw=black!50, node distance=\layersep]
    \tikzstyle{neuron}=[circle,draw,fill=white!25,minimum size=25pt,inner sep=0pt]
    \foreach \x in {1,...,3}
    \path   node[neuron] (L_2_\x) at (\x*\unitsep,2*\layersep){};
    \foreach \x in {1,...,2}
    \path   node[neuron] (L_3_\x) at (\x*\unitsep,3*\layersep){};
    \foreach \x in {1,...,1}
    \path   node[neuron] (L_4_\x) at (\x*\unitsep,4*\layersep){};
\end{tikzpicture}
\end{document}

我尝试过这些,但是它们不起作用:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}


\def\layersep{1.5cm}
\def\unitsep{1.5cm}

\begin{tikzpicture}[shorten >=1pt,->,draw=black!50, node distance=\layersep]
    \tikzstyle{neuron}=[circle,draw,fill=white!25,minimum size=25pt,inner sep=0pt]
    \foreach \x in {1,...,3}
    \path   node[neuron] (L_2_\x) at (\x*\unitsep,2*\layersep){};
    \foreach \x in {1,...,2}
    \path   node[neuron] (L_3_\x) at ({.5+\x}*\unitsep,3*\layersep){};
    \foreach \x in {1,...,1}
    \path   node[neuron] (L_4_\x) at ($1+\x$*\unitsep,4*\layersep){};
\end{tikzpicture}
\end{document}

答案1

像这样?

分层神经元

请注意,\tikzstyle已被弃用并且不应使用。

\documentclass[border=5pt, multi, tikz]{standalone}
\usetikzlibrary{calc}
\begin{document}
\def\layersep{1.5cm}
\def\unitsep{1.5cm}

\begin{tikzpicture}
  [
    shorten >=1pt,->,
    draw=black!50,
    node distance=\layersep,
    neuron/.style={circle,draw,fill=white!25,minimum size=25pt,inner sep=0pt}
  ]
  \foreach \x in {1,...,3}
  \path   node[neuron] (L_2_\x) at (\x*\unitsep,2*\layersep){};
  \foreach \x in {1,...,2}
  \path   node[neuron] (L_3_\x) at ({(.5+\x)*\unitsep},3*\layersep){};
  \foreach \x in {1,...,1}
  \path   node[neuron] (L_4_\x) at ({(1+\x)*\unitsep},4*\layersep){};
\end{tikzpicture}

\end{document}

事实上calc这里不需要。calc当你想用坐标例如“添加”点到点(a)(b)如果你在做算术之内坐标,但数字,它不起作用。你只想要美元符号任何一个使用calc坐标进行算术运算或排版数学,而不是实际操作。所以这里的美元正在制造麻烦,必须被清除。

然后记住,()如果您愿意,它代表一个子计算。至少,这可能不是解释它的官方方式,但这是我的想法。因此,如果我们要添加xy乘以z,那么我们要先进行加法x+y并将其分组,使用(x+y)并乘以z(x+y)*z但是,在坐标规范中,这会让 TikZ 感到困惑,因为它不期望这里有一个。所以我们需要保护坐标规范内的(计算。{(x+y)*z}

请注意,我在这里使用的术语无疑有很多不足之处 - 我使用的不是技术上正确的术语。(我说“保护”,但不是在意义上\protect......)但也许想想这里的事情是如何嵌套的会有所帮助。

相关内容