平均能量损失

平均能量损失

我认为有一个错误,\psframe当我们将它与 PSTricks 中的其他闭合曲线进行比较时,其行为有所不同。

的路径方向\psframe似乎是顺时针的,而其他闭合曲线的路径方向都是逆时针的。

这种现象仅当 时才会发生fillstyle=solid。如果我改为 ,fillstyle=eofill则所有闭合曲线的行为都相同。

在此处输入图片描述

平均能量损失

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

\begin{document}
\begin{pspicture}(-6,-6)(6,6)
\pscustom
[
    %fillstyle=eofill,
    fillstyle=solid,
    fillcolor=yellow
]
{
    \pscircle{6}
    \psframe(-3,2)(-1,4)
    \psccurve(1,2)(3,2)(3,4)(2,3)(1,4)
    \pspolygon(-5,-1)(-3,-1)(-4,1)
    \pswedge(-1,0){1}{45}{360}
    \psellipticwedge(3,0)(2,1){45}{360}
    \pscircle(-2,-3){1}
    \psellipse(2,-3)(2,1)
}
\end{pspicture}
\end{document}

问题

如何反转的路径方向 \psframe

注意:交换点\psframe(-3,2)(-1,4),即,\psframe(-1,4)(-3,2)也无济于事。

答案1

使用\code{reversepath}

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

\begin{document}
\begin{pspicture}[showgrid=top](-6,-6)(6,6)
    \pscustom[fillstyle=solid,fillcolor=yellow]{%
        \pscircle{6}
        \code{reversepath}
        \psframe(-3,4)(-1,2)
        \psccurve(1,2)(3,2)(3,4)(2,3)(1,4)
        \pswedge(-1,0){1}{45}{360}
        \psellipticwedge(3,0)(2,1){45}{360}
        \pscircle(-2,-3){1}
        \psellipse(2,-3)(2,1)
    }
\end{pspicture}
\end{document}

在此处输入图片描述

答案2

根据赫伯特在评论中的暗示。

\documentclass[pstricks,border=12pt]{standalone}
\pstVerb
{
    tx@Dict begin 
    /Rect { 
    x1 y2 moveto 
    x1 y1 lineto 
    x2 y1 lineto 
    x2 y2 lineto 
    x1 y2 lineto 
    closepath 
    } def end
}
\begin{document}
\begin{pspicture}[showgrid=top](-6,-6)(6,6)
    \pscustom[fillstyle=solid,fillcolor=yellow]{%
    \pscircle{6}
    \psframe(-3,4)(-1,2)
    \psccurve(1,2)(3,2)(3,4)(2,3)(1,4)
    \pswedge(-1,0){1}{45}{360}
    \psellipticwedge(3,0)(2,1){45}{360}
    \pscircle(-2,-3){1}
    \psellipse(2,-3)(2,1)}
\end{pspicture}
\end{document}

或者使用\reversepath

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

\begin{document}
\begin{pspicture}[showgrid=top](-6,-6)(6,6)
    \pscustom[fillstyle=solid,fillcolor=yellow]{%
        \pscircle{6}
        \psframe(-3,4)(-1,2)
        \reversepath
        \psccurve(1,2)(3,2)(3,4)(2,3)(1,4)
        \pswedge(-1,0){1}{45}{360}
        \psellipticwedge(3,0)(2,1){45}{360}
        \pscircle(-2,-3){1}
        \psellipse(2,-3)(2,1)
    }
\end{pspicture}
\end{document}

相关内容