如何将节点作为 \uput 的角度参数传递?

如何将节点作为 \uput 的角度参数传递?

我正在尝试解决自己的问题如何旋转标签使其基线与角平分线平行?采用最优雅的方法,即将节点作为的角度参数传递\uput

以下案例按从不太优雅(但成功)到更优雅(但失败)的顺序排列。

  • 情况 1:成功传递文字常量。

    在此处输入图片描述

    \documentclass[pstricks,border=15pt]{standalone}
    \usepackage{pst-eucl}
    
    \begin{document}
    
    \begin{pspicture}[showgrid](4,4)
        \pstGeonode[PosAngle={-135,90},CurveType=polyline]
            (1,1){O}
            (2,3){A}
        \pstGeonode([nodesep=2]O){X}
        \psline[linestyle=dashed](O)(X)
        \psarc[origin={O},linecolor=red]{->}(O){0.5}{(X)}{(A)}
        \uput{1}%
        [
            !3 1 sub 2 1 sub atan
        ]
        {
            !3 1 sub 2 1 sub atan
        }(O){\textcolor{red}{$\pi-\theta$}}
    \end{pspicture}
    
    \end{document}
    
  • 情况2:无法使用\psGetNodeCenter

    在此处输入图片描述

    \documentclass[pstricks,border=15pt]{standalone}
    \usepackage{pst-eucl}
    
    \begin{document}
    
    \begin{pspicture}[showgrid](4,4)
        \pstGeonode[PosAngle={-135,90},CurveType=polyline]
            (1,1){O}
            (2,3){A}
        \pstGeonode([nodesep=2]O){X}
        \psline[linestyle=dashed](O)(X)
        \psarc[origin={O},linecolor=red]{->}(O){0.5}{(X)}{(A)}
        \uput{1}%
        [
            !\psGetNodeCenter{A}\psGetNodeCenter{O} A.y O.y sub A.x O.x sub atan 
        ]
        {
            !\psGetNodeCenter{A}\psGetNodeCenter{O} A.y O.y sub A.x O.x sub atan
        }(O){\textcolor{red}{$\pi-\theta$}}
    \end{pspicture}
    
    
    \end{document}
    
  • 情况3:通过节点失败。

    在此处输入图片描述

    \documentclass[pstricks,border=15pt]{standalone}
    \usepackage{pst-eucl}
    
    \begin{document}
    
    \begin{pspicture}[showgrid](4,4)
        \pstGeonode[PosAngle={-135,90},CurveType=polyline]
            (1,1){O}
            (2,3){A}
        \pstGeonode([nodesep=2]O){X}
        \psline[linestyle=dashed](O)(X)
        \psarc[origin={O},linecolor=red]{->}(O){0.5}{(X)}{(A)}
        \uput{1}[(A)]{(A)}(O){\textcolor{red}{$\pi-\theta$}}
    \end{pspicture}    
    
    \end{document}
    

如何将节点作为的角度参数传递\uput

答案1

\documentclass{article}
\usepackage{pst-eucl}
\begin{document}

\begin{pspicture}[showgrid](4,4)
    \pstGeonode[PosAngle={-135,90}](1,1){O}(2,3){A}
    \pstGeonode([nodesep=2]O){X}
    \psline[linestyle=dashed](O)(X)
    \psarc[origin={O},linecolor=red]{->}(O){0.5}{(X)}{(A)}
    \pcline(O)(A)\ncput*[nrot=:U]{\textcolor{red}{$\pi-\theta$}}
\end{pspicture}    

\end{document}

在此处输入图片描述

相关内容