左边的三角形是右边的三角形以它们之间的垂直线为镜像。
我只想反映几何对象和标签位置(但不包括其标签)。如何才能防止左三角形的标签被反映?
\documentclass[pstricks,border=12pt,12pt]{standalone}
\usepackage{pst-node}
\def\Right#1{%
\pnodes(1,1){#11}(3,1){#12}(1,4){#13}
\pspolygon(#11)(#12)(#13)
\uput[180](#11){A}
\uput[0](#12){B}
\uput[180](#13){C}
}
\begin{document}
\begin{pspicture}(-4,0)(4,5)
\Right{A}
\psscalebox{-1 1}{\Right{B}}
\end{pspicture}
\end{document}
我想要得到的输出如下。
笔记
请不要建议我通过为每个对象定义单独的宏来分离左右对象,因为我的实际场景需要反射技术,而且我也想采用 DRY 原则(不要重复自己!)。
编辑
我尝试了以下
\rput{*0}(!N-#11.x .3 sub N-#11.y){A}
\rput{*0}(!N-#12.x .3 add N-#12.y){B}
\rput{*0}(!N-#13.x .3 sub N-#13.y){C}
但这没有帮助。
我也尝试了以下方法,但没有帮助。
\documentclass[pstricks,border=12pt,12pt]{standalone}
\usepackage{pst-node}
%\psset{saveNodeCoors}
\def\Right#1{%
\pnodes(1,1){#11}(3,1){#12}(1,4){#13}
\pspolygon(#11)(#12)(#13)
%\rput{*0}(!N-#11.x .3 sub N-#11.y){A}
%\rput{*0}(!N-#12.x .3 add N-#12.y){B}
%\rput{*0}(!N-#13.x .3 sub N-#13.y){C}
\uput[180](#11){A}
\uput[0](#12){B}
\uput[180](#13){C}
}
\begin{document}
\begin{pspicture}(-4,0)(4,5)
\Right{A}
\pscustom
{
\code{-1 1 scale}
\Right{B}
}
\end{pspicture}
\end{document}
答案1
\documentclass[pstricks,border=12pt,12pt]{standalone}
\usepackage{pst-node}
\newcommand\Right[2][1 1]{%
\psscalebox{#1}{%
\pnodes(1,1){#21}(3,1){#22}(1,4){#23}%
\pspolygon(#21)(#22)(#23)%
\uput[180](#21){\psscalebox{#1}{A}}%
\uput[0](#22){\psscalebox{#1}{B}}%
\uput[180](#23){\psscalebox{#1}{C}}%
}}
\begin{document}
\begin{pspicture}(-4,0)(4,5)
\Right{A}
\Right[-1 1]{B}
\end{pspicture}
\end{document}