我认为有一个错误,\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}