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