我刚刚开始学习PostScript,以便为LaTeX生成图形,我不知道如何将路径与其本身结合起来,因此笔画只会影响绘制形状的外部边界。我的代码如下:
/black { 0 0 0 1 setcmykcolor } def
/gold { 0.02 0.17 0.72 0.05 setcmykcolor } def
newpath
% the center is 1/2w and 1/2h
/cx { 1200 2.0 div } def % center-x
/cy { 600 2.0 div } def % center-y
/r { 600 9.0 div
4 mul
2.0 div } def % star's radius
cx r 0 cos mul add
cy r 0 sin mul add moveto
cx r 144 cos mul add
cy r 144 sin mul add lineto
cx r 288 cos mul add
cy r 288 sin mul add lineto
cx r 72 cos mul add
cy r 72 sin mul add lineto
cx r 216 cos mul add
cy r 216 sin mul add lineto
closepath
gsave
gold fill
grestore
1 setlinewidth
black stroke在画笔画时,画出与形状相交的线。我想知道是否有一种方法,只有外部边界的形状,而不是内线。我宁愿不必计算形成恒星相交线的位置,即保留5条线,而不是10条较小的线。
另外,请注意,我正在学习PS的原样,并且不想使用外部程序(阅读Illustrator等)。这个问题的目的是建立我的PostScript知识。
发布于 2012-07-03 03:04:44
最简单的方法是先完成笔划,然后再填。你可能想要加倍你的线宽,因为这样做有效地削减了线的一半。
%...
closepath
gsave
2 setlinewidth
black stroke
grestore
gold fill发布于 2013-04-01 12:05:56
PostScript缺少了一个反唇形操作符,该操作符应该将绘制限制在当前路径之外。有clip,它将绘画限制在内部,但这无助于解决这个问题。
正如前面所建议的那样,您可以以双线宽为stroke,然后是fill白色,但是如果您想在其他东西的基础上涂上它,这个策略会模糊下面的任何内容。
或者你可以让恒星变大一点(我怀疑,但currentlinewidth 2 5 sqrt 2 mul 5 div add sqrt mul 2 div还没有确认),但只有在1 setlinejoin的情况下,这看起来才是正确的。
https://stackoverflow.com/questions/11302089
复制相似问题