如何在不移动 pstricks 中的对象的情况下旋转它们?

如何在不移动 pstricks 中的对象的情况下旋转它们?

我正在尝试使用 pstricks(实验示意图)绘制图像,但旋转东西时遇到了困难。我正在使用 psrotate,每次旋转某个东西时,它的位置也会发生变化。有没有办法让某个东西相对于其中心旋转?我正在尝试旋转简单的物体,例如正方形和矩形……

非常感谢。

 \documentclass[crop=true]{standalone} 
 \usepackage{pst-plot}
 \usepackage{pstricks-add}
 \usepackage{auto-pst-pdf}

\begin{document}
%
 \begin{pspicture}(-0.1,-0.1)(20.1,25.1)

\psframe[linewidth=0.065cm,linecolor=black](0,0)(20,25)
%
\psframe[linewidth=0.065cm,linecolor=black](1,15)(19,24)
\pspolygon[fillstyle=solid, linewidth=0.06cm,linecolor=gray](5,17)(10,22)(15,17)%prisma


\psframe[linewidth=0.065cm,linecolor=black](1,1)(19,14.5)
\pspolygon[linewidth=0.06cm,linecolor=gray](4,2)(10,8)(16,2)%prisma


\pscircle*[linecolor=LTCearthred](7.5,5.5){3pt}
\pscircle*[linecolor=LTCearthred](12.5,5.5){3pt}
\pscircle*[linecolor=LTCearthred](10,2){3pt}

\psline[linestyle=dotted,linecolor=black](5,8)(9,4)
\psline[linestyle=dotted,linecolor=black](11,4)(15,8)

\psline[linewidth=0.05cm,linecolor=black](4,13)(7.5,5.5)
\psline[linewidth=0.05cm,linecolor=black](10,2)(7.5,5.5)

\psline[linewidth=0.05cm,linecolor=red](10,2)(12.5,5.5)
\psline[linewidth=0.05cm,linecolor=red](12.5,5.5)(16,13)

\psrotate(0,0){-20}{\pspolygon*[](-1.95,13.9)(-0.95,14.9)(0.05,13.9)(-0.95,12.9)}

\end{pspicture}
\end{document}

最后一个对象(psrotate 里面,倒数第三行)让我头疼。花了好长时间才把它放在那里,而且还会有其他类似的对象……

答案1

使用

\psdot[dotsize=1.41,dotstyle=square*,dotangle=70](-0.95,13.9)

而不是旋转的多边形。顺便说一下,有一个pst-optic带有的包\psprism。请参阅文档的第 21 页及后续页面。

答案2

这是一个解决方案。我保留了原来的正方形。解决方案是使用命令rotatebox。我使用包简化了代码pst-poly,该包定义了一个\PstSquare命令并生成一个与您的位置不相同的正方形,因此我必须计算最终的旋转。

\documentclass[border = 5pt]{standalone}

\usepackage{pstricks, pst-poly}
\usepackage{auto-pst-pdf}


 \begin{document}

 \begin{pspicture}(-0.1,-0.1)(20.1,25.1)
\psframe[linewidth=0.065cm,linecolor=black](0,0)(20,25)
%
\psframe[linewidth=0.065cm,linecolor=black](1,15)(19,24)
\pspolygon[fillstyle=solid, linewidth=0.06cm,linecolor=gray](5,17)(10,22)(15,17)%prisma
%
\psframe[linewidth=0.065cm,linecolor=black](1,1)(19,14.5)
\pspolygon[linewidth=0.06cm,linecolor=gray](4,2)(10,8)(16,2)%prisma
%
\pscircle*[linecolor=LTCearthred](7.5,5.5){3pt}
\pscircle*[linecolor=LTCearthred](12.5,5.5){3pt}
\pscircle*[linecolor=LTCearthred](10,2){3pt}
%
\psline[linestyle=dotted,linecolor=black](5,8)(9,4)
\psline[linestyle=dotted,linecolor=black](11,4)(15,8)
%
\psline[linewidth=0.05cm,linecolor=black](4,13)(7.5,5.5)
\psline[linewidth=0.05cm,linecolor=black](10,2)(7.5,5.5)
%
\psline[linewidth=0.05cm,linecolor=red](10,2)(12.5,5.5)
\psline[linewidth=0.05cm,linecolor=red](12.5,5.5)(16,13)
%
{\pspolygon*[](-1.95,13.9)(-0.95,14.9)(0.05,13.9)(-0.95,12.9)}
\rput(-0.95,13.9){\rotatebox{-25}{\PstSquare[linecolor =green]}}%{\pspolygon[linecolor =red](-1,0)(0,1)(1,0)(0,-1)}
%
\end{pspicture}

\end{document} 

在此处输入图片描述

相关内容