- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
(我又问了一个问题:-))
给定以下 PostScript 代码:
/riverside { 5 pop } def
/star { 6 pop 2 {riverside} repeat } def
star
% begin execute 3rd line (star)
% OP = operand stack
% EX = execution stack
% handle 6
OP: 6
EX: star
% handle pop (removes 6 from OP)
OP: -
EX: star
% handle 2
OP: 2
EX: star
% set the riverside executable array on the EX, execute the values
OP: 2
EX: star riverside
% repeat operator:
CRASH, only one item on the OP left, but repeat operator requires 2 operands.
OP: 5
EX:
% end
/starside
{ 72 0 lineto
currentpoint translate
-144 rotate } def
/star
{ moveto
currentpoint translate
4 {starside} repeat
closepath
gsave
.5 setgray fill
grestore
stroke } def
200 200 star
showpage
最佳答案
我相信您需要查看 PLRM 的第 3.5.3 节。虽然这涉及一个简单的可执行数组,但概念是相同的。当 token 扫描器遇到“{”时,它开始构建一个可执行数组。在它到达匹配的“}”标记之前,扫描器只是将它遇到的内容存储在操作数堆栈中。当它遇到匹配的 '{' 时,对象被转换为一个可执行数组(并存储在操作数堆栈中)
在扫描器遇到可执行名称的情况下,它会将名称存储在操作数堆栈中。它不执行名称,甚至不执行查找以检索关联的对象。
因此,在您的示例中执行 '}' 之前,操作数堆栈将包含 twp 对象、'{' 开头数组和可执行文件名称 Riverside。当您遇到 '}' 时,扫描器会创建实际的可执行数组并将其存储在操作数堆栈中。 (注意,实现细节在这里有所不同)
因此,在执行 'repeat' 之前,堆栈上将有两个对象,计数器和一个包含单个可执行文件名称的可执行文件数组。
在执行包含名称的可执行数组之前,您不会查找名称。
这可能会更清楚:
%!
/test {(This is my initial string\n) print} def
2 {test} repeat
2 {test} /test {(This is my second string\n) print} def repeat
关于stack - 嵌套过程的 PostScript 执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16438165/
下面的代码绘制了一条宽虚线曲线。曲线太宽以至于虚线重叠。在黑色虚线重叠的某些地方,输出似乎是错误的。我已经在 Mac OS X 和 Ghostscript 的预览版中对此进行了测试。谁能解释一下? %
例如,我以编程方式构造了一个字符串 (/r1 [256 782 502] def) 然后我想按照 PostScript 指令执行字符串,以便将数组放在堆栈上。 如何执行字符串对象? 最佳答案 正如 K
我正在寻找一种交叉影线各种基本形状的方法。是否有我找不到的填充样式,或者我应该使用剪裁? 最佳答案 查看第 4.9 章:Patterns of the PostScript Language Refe
按给定字符将字符串拆分为数组的最简单方法是什么?例如,通过空间分割来制作一个单词数组;甚至制作一个包含字符串所有字符的数组。 我能想到的唯一方法是使用 search在一个循环中。由于所有语言都有用于此
我正在尝试将两个或多个 postscript 文件合并为一个。我尝试了连接,但它不起作用,因为每个 postscript 文件可能有不同的资源头。 以前有人这样做过吗?是否有任何图书馆(商业或开源)?
我想达到与此相同的目的: 4 1 1 [1 0 0 1 0 0] {} image 但使用基数表示: 4 1 1 [1 0 0 1 0 0] 2#0100 image %this one does n
我需要在 postscript 中确定字符串的高度(以给定的比例和字体)。 /Helvetic-Oblique findfont 10 scalefont setfont 10 10 1 0 360
我确实有以下由 Ghostscript 生成的 PostScript 代码内容Windows XP 上的打印机。 /Euro /Times-BoldItalic /Times-BoldItalic-C
目标是使这条线正常工作: (árvíztűrő tükörfúrógép,ÁRVÍZTŰRŐ TÜKÖRFÚRÓGÉP) show 所有这些字符都在 中CE 编码矢量 . 这些链接可能有助于找到答案:
我真的很纠结于 postscript 中的语法。该程序在堆栈中给出了 6 个值,并且需要以相同的顺序返回堆栈,每个项目都添加 1。我在这一点上迷路了,下面的程序是我能得到的最接近的程序。这当前需要一个
我正在寻找一种方法将一堆连接线渲染为 postscript 中的一条漂亮的连续曲线。渲染曲线穿过我所有的点很重要。 curveto似乎是绘制曲线的唯一可用方法,但该功能需要贝塞尔控制点,而我没有。 那
这个问题的目的是从编程的角度更好地理解 PostScript。下面描述的目标只是一个用于说明的示例。 在 PostScript 语言中,我可以定义一个程序来设置当前图形颜色,如下所示: /cRED {
我正在使用带有以下内容的 postscript 绘制一个简单的矩形 1 -1 scale 0 -300 translate newpath 88.9 117.25 moveto 131.6 117.2
我是 PostScript 语言的新手。现在我正在使用 ps 打印点的缩放图像。 ps默认的dpi是72dpi,不知道怎么改成600dpi。 我写的代码如下,是一个点的正方形。 %%Dot_unit
我希望能够将条形码添加到生成的 postscript 文件中。 postscript 文件是由另一个程序生成的,我无法更改该程序的工作方式。 我发现几个线程表明这可以通过将 Postscript 文件
我有一个带有两个变量的简单函数 /func { /var1 exch def /var2 exch def ... process ... } def (var2)(var1)func 我想让 var
我有一个 pdf 文件或该 pdf 的后脚本文件。我的要求是将此文件转换为 ZPL 代码,以便我的热敏打印机可以打印它。我在谷歌上搜索了很多但找不到任何可以满足我要求的解决方案。如果您以前遇到过这种情
我有一个 pdf 文件或该 pdf 的后脚本文件。我的要求是将此文件转换为 ZPL 代码,以便我的热敏打印机可以打印它。我在谷歌上搜索了很多但找不到任何可以满足我要求的解决方案。如果您以前遇到过这种情
在运行时之前已知值为 10 和 20 的示例,以便更好地理解以下实际问题: /point1 { 10 20 } def 将数字 10 和 20 放入(匿名)过程然后将其分配给名称 point1(因此它
我正在尝试使用 pathforall 为路径中绘制的每条线应用不同的颜色。当我把“描边”放在末尾时,它显然只会用最近的颜色绘制形状。每次颜色变化后如何执行笔画?/lineto 的功能 block 不接
我是一名优秀的程序员,十分优秀!