我有一个关于PostScript中当前图形状态和图形状态堆栈的问题。
在我的代码中,我现在有一个表示当前图形状态的堆栈。 当我初始化解释器时,它会创建一个新的GraphicsState对象并将其添加到“gsstack”中。
我的当前图形状态被实现为:“gsstack.Peek()”,它始终返回最顶部的图形状态。
使用gsave操作符,我创建了当前图形状态的克隆,并将其推送到“gsstack”上,这样我就有了一个新的最顶部的图形状态(这意味着我有了一个新的当前图形状态对象)。
现在用grestore操作符还原,它从http://www.tailrecursive.org/postscript/operators.html#grestore读取。
“将当前图形状态设置为图形状态堆栈中最顶部的图形状态,并将该状态从堆栈中弹出。”
那么这个grestore是如何工作的呢?因为我的当前图形状态已经是最顶部的图形状态了...我应该把它从堆栈中弹出吗?
在我的代码中,我现在有一个表示当前图形状态的堆栈。 当我初始化解释器时,它会创建一个新的GraphicsState对象并将其添加到“gsstack”中。
我的当前图形状态被实现为:“gsstack.Peek()”,它始终返回最顶部的图形状态。
使用gsave操作符,我创建了当前图形状态的克隆,并将其推送到“gsstack”上,这样我就有了一个新的最顶部的图形状态(这意味着我有了一个新的当前图形状态对象)。
现在用grestore操作符还原,它从http://www.tailrecursive.org/postscript/operators.html#grestore读取。
“将当前图形状态设置为图形状态堆栈中最顶部的图形状态,并将该状态从堆栈中弹出。”
那么这个grestore是如何工作的呢?因为我的当前图形状态已经是最顶部的图形状态了...我应该把它从堆栈中弹出吗?
我的实现有问题吗?当我初始化解释器时,我应该创建一个新的当前图形状态对象,但不将其添加到“gsstack”中,只有在调用gsave运算符时才将其推送到“gsstack”中吗?
提前致谢。
definefont
)。 - luser droog