【问题标题】:nocurrentpoint exception PostScriptnocurrentpoint 异常 PostScript
【发布时间】:2017-01-23 11:30:12
【问题描述】:

我开发了一个函数来在 postscript 中创建一个简单的复选框,但它似乎仍然不起作用。 生成矩形没有问题,但是在写行的过程中似乎抛出了异常(使复选框的经典X)。

/nocurrentpoint in --nocurrentpoint--

这是我的代码。

/doMarkedCheckBox {
0.1 setlinewidth
currentpoint
/yIniChk exch def
/xIniChk exch def
xIniChk 
yIniChk
DimChars
DimChars
rectstroke
xIniChk DimChars add yIniChk DimChars add lineto 
0 DimChars 0 sub moveto 
yIniChk DimChars add xIniChk lineto 
stroke
} bind def

有人可以解释如何正确地做到这一点吗? 提前致谢。

【问题讨论】:

  • 这是一个过程定义,你在哪里调用过程? currentpoint 仅在您之前执行 moveto 时有效(或任何其他设置当前点的命令)。在您自己设置之前没有当前点。 (平移或其他变换也不设置当前点)

标签: postscript


【解决方案1】:

这正是问题所在 - 在rectstroke 调用后,您关闭了路径并且没有起点。

您可以再次移动到那里,将值放入堆栈并发出moveto - 生成检查的另一部分的代码似乎至少有一个错误 - 而且,因为你有squaresize 已经在DimChars 中,在这些问题中使用rlineto 可能更容易。

总而言之,如果您将rectstroke 之后的指令替换为这个序列,您应该会很好:

    ...
    xInitChk YInitChk moveto
    DimChars DimChars rlineto
    stroke
    XInitChk YInitChk DimChars add moveto
    DimChars DimChars neg rlineto
    stroke
} bind def

【讨论】:

    猜你喜欢
    • 2013-12-07
    • 1970-01-01
    • 1970-01-01
    • 2016-12-02
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多