11

I really don't understand the behavior of \uput with non-zero dimensional object as illustrated below.

enter image description here

\documentclass[pstricks,border=12pt]{standalone} 
\usepackage{multido} 

\def\NonZeroDimenObject{%
    \pspicture(2,2)
        \psframe(2,1)
    \endpspicture}

\begin{document} 

\multido{\i=0+30}{12}{%
\begin{pspicture}[showgrid](8,8)
    \pscircle(4,4){1.414}
    \rput(4,4){$\i^\circ$}
    \uput{1.414}[\i]{0}(4,4){\NonZeroDimenObject}
\end{pspicture}}

\end{document}

Which point on the frame should be used as a reference to understand how \uput works?

Edit:

In other words, which points on the frame or inside the frame or outside the frame move with a circular trajectory?

1 Answers1

5

The \NonZeroDimenObject you created is based on a pspicture of size (2,2). The frame inside of it only stretches from the origin (0,0) only as far out as (2,1), leaving a vertical gap above it of size 1. As such, the frame/rectangle is pushed downward when being \uput past 180 degrees. You should use the following definition:

\def\NonZeroDimenObject{%
    \pspicture(2,1)
        \psframe(2,1)
    \endpspicture}

enter image description here

For those interested in creating animated GIFs as output displays, see How to convert pstricks animation to GIF file?

Werner
  • 603,163