質問

質問
\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pst-solides3d}
\psset
{
    object=parallelepiped,
    lightsrc=20 60 60 rtp2xyz,
    Decran=30,
    solidmemory,
    grid=false,
    incolor=red,
}
\begin{document}
\multido{\i=0+30}{12}{%
\begin{pspicture}[viewpoint=20 \i\space 20 rtp2xyz](-7,-3)(7,8)
    \psSolid[fillcolor=red,a=2,b=0.75,c=1.5,name=H2](0,-0.375,0.75)
    \psSolid[fillcolor=red,a=2,b=4,c=0.5,name=H1](0,2,0.25)
    \psSolid[fillcolor=green,a=2,b=0.75,c=1.5,name=H3](0,-0.375,2.25)
    \psSolid[fillcolor=green,a=2,b=4,c=0.5,name=H4](0,2,2.75)
\end{pspicture}}
\end{document}

ここに画像の説明を入力してください

質問

回転ブロック 3D オブジェクトが予期せず移動する原因は何ですか? また、それを修正するにはどうすればよいでしょうか?

答え1

\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pst-solides3d}
\psset
{
    object=parallelepiped,
    lightsrc=viewpoint,
    Decran=30,
    solidmemory,
    grid=false,
    incolor=red,
}
\begin{document}
\multido{\i=0+30}{12}{%
\begin{pspicture}[viewpoint=20 \i\space 20 rtp2xyz](-7,-3)(7,8)
   \ifnum\i>180
        \psSolid[fillcolor=red,a=2,b=4,c=0.5,name=H1](0,2,0.25)
        \psSolid[fillcolor=red,a=2,b=0.75,c=1.5,name=H2](0,-0.375,0.75)
        \psSolid[fillcolor=green,a=2,b=4,c=0.5,name=H4](0,2,2.75)
        \psSolid[fillcolor=green,a=2,b=0.75,c=1.5,name=H3](0,-0.375,2.25)
   \else
        \psSolid[fillcolor=red,a=2,b=0.75,c=1.5,name=H2](0,-0.375,0.75)
        \psSolid[fillcolor=red,a=2,b=4,c=0.5,name=H1](0,2,0.25)
        \psSolid[fillcolor=green,a=2,b=0.75,c=1.5,name=H3](0,-0.375,2.25)
        \psSolid[fillcolor=green,a=2,b=4,c=0.5,name=H4](0,2,2.75)
   \fi
\end{pspicture}}
\end{document}

ここに画像の説明を入力してください

関連情報