如何获取线段与 \ncput 的假设框架框相交的节点?

如何获取线段与 \ncput 的假设框架框相交的节点?

\*cline我想获取与 的假设边 相交的节点\ncput。以下动画显示了我尝试通过反复试验的方法找到节点。

我需要节点,因为我想拥有 PNG 格式的透明背景,但是却\ncput*无法实现。

在此处输入图片描述

\documentclass[pstricks,border=12pt,multi]{standalone}
\usepackage{pst-eucl,multido}

\begin{document}
\multido{\n=0.1+0.1}{10}{%
\begin{pspicture}[showgrid=false](2,2)
    \pstGeonode
        [
            PosAngle={135,-45},
            PointName={default,default,none},
            PointSymbol={none}
        ]
        (0,1){A}
        (2,0){B}
        ([offset=15pt]{B}A){A'}
        ([offset=-15pt]{A}B){B'}
        ([nodesep=\n]{B'}A'){A''}
        ([nodesep=\n]{A'}B'){B''}
    %
    \psline(A)(B)
    %
    \bgroup
        \psset{linestyle=dashed,dash=1pt 1pt,linecolor=red,linewidth=0.5\pslinewidth}
        \psline(A)(A')
        \psline(B)(B')
    \egroup
    %
    \pcline{|<*-}(A')(A'')
    \pcline{->|*}(B'')(B')
    \ncline[linestyle=none]{A''}{B''}
    \ncput[nrot=:0]{$\sqrt{5}$}
\end{pspicture}}
\end{document}

答案1

问题解决了!

现在,我可以获得 PNG 中的透明标签,如下所示。

在此处输入图片描述

\documentclass[pstricks,border=12pt,multi]{standalone}
\usepackage{pst-eucl}
\newcommand\ncputtransparent[4][1pt]{%
    \ncline[linestyle=none]{#2}{#3}
    \ncput[nrot=:0]{\psDefBoxNodes{obj}{#4}}
    \pcline{|<*-}(#2)([nodesep=#1]{#2}obj:Cl)
    \pcline{->|*}([nodesep=#1]{#3}obj:Cr)(#3)
}

\begin{document}
\begin{pspicture}[showgrid=false](2,2)
    \pstGeonode
        [
            PosAngle={135,-45},
            PointName={default,default,none},
            PointSymbol={none}
        ]
        (0,1){A}
        (2,0){B}
        ([offset=15pt]{B}A){A'}
        ([offset=-15pt]{A}B){B'}
    %
    \psline(A)(B)
    %
    \bgroup
        \psset{linestyle=dashed,dash=1pt 1pt,linecolor=red,linewidth=0.5\pslinewidth}
        \psline(A)(A')
        \psline(B)(B')
    \egroup
    \ncputtransparent[3pt]{A'}{B'}{$\sqrt5$}
\end{pspicture}
\end{document}

仅出于比较目的,以下代码使用了 opaque \ncput*。您能看出区别吗?注意:我故意将图像括在引号标签中以强调 opaque 标签。

在此处输入图片描述

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

\begin{document}
\begin{pspicture}[showgrid=false](2,2)
    \pstGeonode
        [
            PosAngle={135,-45},
            PointName={default,default,none},
            PointSymbol={none}
        ]
        (0,1){A}
        (2,0){B}
        ([offset=15pt]{B}A){A'}
        ([offset=-15pt]{A}B){B'}
    %
    \psline(A)(B)
    %
    \bgroup
        \psset{linestyle=dashed,dash=1pt 1pt,linecolor=red,linewidth=0.5\pslinewidth}
        \psline(A)(A')
        \psline(B)(B')
    \egroup
    \pcline{|<*->|*}(A')(B')
    \ncput*[nrot=:0]{$\sqrt5$}
\end{pspicture}
\end{document}

相关内容