如何在节点中写入数学结果?

如何在节点中写入数学结果?

我已经定义(在 egreg 的帮助下):这个新命令的定义中,其参数中参数的数量可变,有什么问题?)这个新命令:

\newcommand{\st}[3]{%
 \begin{center}
            \begin{tikzpicture}[scale=.5, line width=1pt]
                \draw (0 , 0) -- (0, 2*dim{{#3}}+2);
                \draw [fill=gray!25] (0 , 0) circle(1.6);
                \draw (0, 0) node {{\large \textbf{#2}}};
                \foreach \superscript [count=\ni from 2] in {#3} {%
                %\draw (-\ni, 2*\ni) -- (\ni, 2*\ni);
                \draw [->] (-\ni, 2*\ni) -- (dim{{#3}}+5, 2*\ni);
                \draw [fill=black] (0, 2*\ni) circle(.2);
                \draw [fill=white] (\ni , 2*\ni) circle(1);         
                \draw [fill=white] (-\ni, 2*\ni) circle(1);
                \draw (-\ni, 2*\ni) node {\superscript};
                \draw (\ni, 2*\ni) node {\the\numexpr#1/(2*#2)/\superscript};
                \pgfmathparse{#1/(2*#2)/\superscript}
                \draw ((dim{{#3}}+5, 2*\ni) node [draw, rectangle, fill = gray!10, right]{here the mathematical result};
                %\draw ((dim{{#3}}+5, 2*\ni) node {\the\numexpr#2*{{\pgfmathresult-\superscript^2}}};
                }
            \end{tikzpicture}
        \end{center}
    }

将其作为 \st{252}{1}{9,7,6,3,2,1} 运行,我们得到下图:

在此处输入图片描述

我试图写一个数学结果,其中我写了“这里是数学结果”。数学运算如下:#2 *(右侧节点上的数字平方 - 左侧节点上的数字平方)。#2 是写在大圆圈(灰色)内的变量,在此示例中为 #2 = 1。例如,对于顶部的一对节点,我们必须计算 1 * (126² - 1²),对于第二行,1*(63² - 2²),...,依此类推。

我对这些工作环境仍然了解不够,并且在尝试时总是收到错误消息。

答案1

我宁愿使用节点和较少的重复,和xfp

\documentclass{article}
\usepackage{tikz}
\usepackage{xfp}
\begin{document}
\newcommand{\st}[3]{%
\begin{center}
  \begin{tikzpicture}[scale=.5, line width=1pt,c/.style={circle,draw,minimum
  size=1cm},f/.style={circle,fill,minimum size=2mm}]
      \draw (0 , 0) -- (0, 2*dim{{#3}}+2);
      \draw [fill=gray!25] (0 , 0) circle(1.6);
      \draw (0, 0) node {{\large \textbf{#2}}};
      \pgfmathtruncatemacro{\mydim}{dim{{#3}}}
      \foreach \mysuperscript [count=\myni from 2] in {#3} {%
      \path (-\myni, 2*\myni) node[c](l-\myni) {$\mysuperscript$}
       -- node[f]{} (\myni, 2*\myni) node[c](r-\myni) {$\the\numexpr#1/(2*#2)/\mysuperscript$}
      (\mydim+5, 2*\myni) 
      node [draw, rectangle, fill = gray!10, right] (x-\myni)
      {$\fpeval{#2*((#1/(2*#2)/\mysuperscript)^2-1)}$}
      (r-\myni) edge (l-\myni) edge[-latex] (x-\myni) ;
      }
  \end{tikzpicture}
\end{center}}
\st{252}{1}{9,7,6,3,2,1}    
\end{document}

在此处输入图片描述

相关内容