当有多个 \curvepnodes 调用时,如何使用 \Pnodecount?

当有多个 \curvepnodes 调用时,如何使用 \Pnodecount?

假设有 2 个\curvepnodes宏被调用,如下所示。

\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pst-node,pst-plot}

\begin{document}
\begin{pspicture}[showgrid](-4,-3)(4,3)
    \curvepnodes[plotpoints=6]{0}{360}{.5 t PtoC}{I}
    \curvepnodes[plotpoints=6]{0}{360}{1 t 36 add PtoC}{O}
    \def\points{}%
    \multido{\i=0+1}{\Pnodecount}{\xdef\points{\points (I\i)(O\i)}}
    \expandafter\pspolygon*[linecolor=red]\points
\end{pspicture}
\end{document}
  1. \Pnodecount这种情况下该如何使用?
  2. 如果plotpoints第一个与最后一个不同,如何\Pnodecount通过根节点名称引用其中一个?
  3. 附加问题:如何使其\expandafter\pspolygon*[linecolor=red]\points发挥作用?

答案1

没有\Pnodecount!名称由第四个参数构建:\Inodecount\Onodecount。但是,我不知道你到底想画什么。

\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pst-node,pst-plot}

\begin{document}
\begin{pspicture}[showgrid](-4,-3)(4,3)
    \curvepnodes[plotpoints=6]{0}{360}{.5 t PtoC}{I}
    \curvepnodes[plotpoints=6]{0}{360}{1 t 36 add PtoC}{O}
    \def\points{}%
    \multido{\i=0+1}{\Inodecount}{\xdef\points{\points (I\i)(O\i)}}
    \psset{linecolor=red}
    \expandafter\pspolygon\expandafter*\points
\end{pspicture}
\end{document}

pst-poly

\documentclass{article}
\usepackage{pst-poly}

\begin{document}
foo \PstStarFive*[unit=2,linecolor=red] bar
\end{document}

答案2

我不确定您要做什么,\Pnodecount因为您已经知道要沿曲线放置多少个节点。另外,我会针对多边形采取自己的解决方法。

这是 MWE

\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pst-node,pst-plot}
\psset{unit=1in}
\begin{document}

\def\mymaxvalue{6}
\begin{pspicture}[showgrid](-2,-2)(2,2)

    \def\circI{ 0.5 t PtoC }
%    \psparametricplot[linecolor=blue]{0}{360}{  \circI  }
    \curvepnodes[plotpoints=\mymaxvalue]{0}{360}{ \circI }{I}

    \def\circQ{   1  t 36 add PtoC }
%    \psparametricplot[linecolor=red]{0}{360}{ \circQ  }
    \curvepnodes[plotpoints=\mymaxvalue]{0}{360}{ \circQ }{Q}

    \pscustom[fillcolor=red,fillstyle=solid,linecolor=red]{
    \multido{\i=0+1}{\Inodecount}{
%      \psdot(I\i)\uput[75](I\i){$I_\i$}
%      \psdot(Q\i)\uput[75](Q\i){$Q_\i$}
      \psline(I\i)(Q\i)
      \ifnum\i<\number\numexpr\mymaxvalue-1\relax\relax\psline(Q\i)(I\number\numexpr\i+1\relax)\fi
    }}
\end{pspicture}

\end{document}

在此处输入图片描述

严格来说,宏\Pnodecount不是\Pnodecount。您定义了两个节点集合。因此,有两个宏: \Inodecount\Qnodecount(我避免使用,O因为我永远不知道我什么时候把它误输入为零,但在您的示例中,这将是\Onodecount)。这一点在文档中并不是很清楚,您需要查看文件pst-node.tex以了解它在那里是如何定义的。

抱歉,我忘了您要填写。

相关内容