有没有更简单的方法来获取 \rput frame 所包围的参考点?

有没有更简单的方法来获取 \rput frame 所包围的参考点?

有没有更简单的方法来获取下面显示的点状参考节点?

在此处输入图片描述

\documentclass[dvips,dvipsnames,rgb]{article}

\usepackage{pstricks,pst-node,graphicx}

\psset{framesep=0pt,linewidth=0.1pt}

\SpecialCoor

\newsavebox\mybox

\newenvironment{MyFrameBox}[4][8]{%BEGIN
    \def\labeling##1##2{\qdisk(##1){0.2pt}\uput{#3}[##2](##1){\scalebox{#4}{##1}}}%
    \def\scaling{%
        \scalebox{#1}{%
            \rnode[B]{B}{\rnode[c]{c}{\rnode[t]{t}{%
            \rnode[tl]{tl}{\rnode[l]{l}{\rnode[Bl]{Bl}{%
            \rnode[bl]{bl}{\rnode[b]{b}{\rnode[br]{br}{%
            \rnode[Br]{Br}{\rnode[r]{r}{\rnode[tr]{tr}{%
            \psframebox[linecolor=lightgray]{#2}}}}}}}}}}}}}%       
            \labeling{B}{135}\labeling{c}{45}%
            \labeling{t}{90}\labeling{tl}{180}%
            \labeling{l}{135}\labeling{Bl}{180}%
            \labeling{bl}{-90}\labeling{b}{-90}%
            \labeling{br}{-90}\labeling{Br}{0}%
            \labeling{r}{0}\labeling{tr}{0}%
            \psline[linecolor=lightgray](Bl)(Br)%
            \usebox{\mybox}}}
    \begin{lrbox}{\mybox}\ignorespaces}{%END
    \end{lrbox}\scaling\ignorespacesafterend}

\begin{document}
\begin{MyFrameBox}[10]{\color{red}\rm\"Age}{0.5pt}{0.1}
\psset{arrowscale=0.25,arrows=<->}
\ncline[linecolor=blue]{t}{r}
\end{MyFrameBox}
\end{document}

答案1

\documentclass{article}

\usepackage{pst-node}

\def\DefNodes#1#2{\rnode[tl]{#1-tl}{\rnode[tr]{#1-tr}{%
  \rnode[bl]{#1-bl}{\rnode[br]{#1-br}{#2}}}}}

\begin{document}

\psscalebox{10}{\DefNodes{Age}{\cyan Age}}%
\pspolygon[linecolor=red](Age-tl)(Age-tr)(Age-br)(Age-bl)%
\psline[linestyle=dashed,linecolor=red](Age-bl|0,0)(Age-br|0,0)%
\pcline[linestyle=none](Age-tl)(Age-tr)\ncput{\rnode{Age-tc}{\psdot}}%
\pcline[linestyle=none](Age-bl)(Age-br)\ncput{\rnode{Age-bc}{\psdot}}%
\pcline[linestyle=none](Age-bl)(Age-tl)\ncput{\rnode{Age-lc}{\psdot}}%
\pcline[linestyle=none](Age-br)(Age-tr)\ncput{\rnode{Age-rc}{\psdot}}%
\pcline[linestyle=none](Age-lc)(Age-rc)\ncput{\rnode{Age-C}{\psdot}}%
\psdots(Age-bl)(Abe-bl|0,0)(Age-tl)(Age-tr)(Agr-br|0,0)(Age-br)
\pcline[arrows=<->,linecolor=blue,arrowscale=1.25](Age-rb|0,0)(Age-tc)

\end{document}

相关内容