如何在 pstricks 中的 pnode 周围绘制一些东西?

如何在 pstricks 中的 pnode 周围绘制一些东西?

我想调用pstricks 中的myfun一个节点mynode,但不知道如何处理。以下是示例:

\documentclass[preview,border=10pt]{standalone}
\usepackage{pstricks-add}
\def\myfun(#1,#2)
{
    \psline[linewidth=0.75\pslinewidth]{<->}(! #1 0.25 sub #2 0.1 add)(! #1 0.25 add #2 0.1 add)
}

\begin{document}
\begin{pspicture}[showgrid](2,2)

% my implementation
\myfun(1,1)

% what I want: (i) define a node; (ii) draw \myfun around it
\pnode(1,1){mynode}
% but how to define `\myfun(mynode)`?
\end{pspicture}
\end{document}

在此处输入图片描述

答案1

以下示例更新了\myfun工作方式。它没有明确采用参数,而是(x,y)采用更通用的(<coordinate>)参数,可以是节点、x,y坐标、r;t坐标或其他任何参数。从根本上讲,更新会MyNoDe为传递的坐标参数设置一个新节点,并用于\psGetNodeCenter提取MyNoDe.xx坐标)和MyNoDe.yy-坐标)。

在此处输入图片描述

\documentclass{article}

\usepackage{pst-node}

\def\myfun(#1){
  \pnode(#1){MyNoDe}% Set temporary node
  \psline
    [linewidth = 0.75\pslinewidth]% options
    {<->}% style
    (! \psGetNodeCenter{MyNoDe} MyNoDe.x MyNoDe.y)% from
    (! \psGetNodeCenter{MyNoDe} MyNoDe.x 0.25 add MyNoDe.y 0.1 add)% to
}

\begin{document}

\begin{pspicture}[showgrid](2,2)
  % my implementation
  \myfun(1,1)

  % what I want: (i) define a node; (ii) draw \myfun around it
  \pnode(0.5,1){mynode}
  \myfun(mynode)

  \myfun(1.5;30)
\end{pspicture}

\end{document}

我已经更新了\psline内部\myfun以拥有不同的fromto节点;您的示例将绘制一个零长度的\psline

答案2

\documentclass[preview,border=10pt]{standalone}
\usepackage{pstricks-add}
\def\myfun(#1){%
    \pcline[linewidth=0.75\pslinewidth,nodesep=2.5mm,offset=0.25]{<->}(#1)(#1)}

\begin{document}
    \begin{pspicture}[showgrid](2,2)    
    \pnode(1,1){mynode}
    \myfun(mynode)
    \end{pspicture}
\end{document}

在此处输入图片描述

或者作为替代方案:

\def\myfun(#1){%
    \rput(#1){%
        \psline[linewidth=0.75\pslinewidth]{<->}(-0.25,0.1)(0.25,0.1)}}

相关内容