0

我正在以下链接阅读 RobertSedwick 的算法

http://books.google.co.in/books?id=pQRLfMngZ7sC&pg=PA213&lpg=PA213&dq=towers+of+hanoi+relation+with+trailing+zeros&source=bl&ots=gfM2UdBkNq&sig=avk5lNz7XeNODghvOlvHKSGMc8g&hl=en#v=onepage&q=towers% 20of%20hanoi%20relation%20with%20trailing%20zeros&f=false

页码:218 图 5.13

PostScript 中的以下语句是什么意思。

 2 copy ge {dup 0 rlineto}
 {
    ...
 } ifelse

还有以下是什么意思

   2 copy KochR

我第一次在这里研究 PostScript。

4

3 回答 3

1

(这个答案基于 luser droog 的答案,我对给​​出的代码有不同的理解。)

要更直接地回答您的问题,很难解释代码的作用,因为它不完整。

两个片段的开头都是2 copy将顶部两个东西的副本推送到堆栈上。这些是什么东西????(在此复制之后,2不再在堆栈上。)

嗯,他们可能是数字。在第一个示例中,它们几乎肯定是一个坐标对:x 和 y:

  • 如果y大于等于 2 x ,则从当前位置到(y,0)画一条线到 (current-x + y-from-stack, 0) 。为什么要这样做????

  • 否则执行省略号表示的代码{ ... }

在第二个示例中,KochR很可能是绘制科赫曲线的递归过程,其中一个参数几乎可以肯定是递归级别,另一个可能是单个线段的长度(除非它非常复杂并提供全局-缩放控制)。

这就是从代码中可以猜到的所有内容,如图所示。

于 2012-09-12T11:54:36.437 回答
1

在此处查看 Kurt Pfeifle 的答案,以获取此草率答案的更正版本。希望我在后续问题中有所救赎


要更直接地回答您的问题,很难解释代码的作用,因为它不完整。

两个片段的开头都是2 copy将顶部两个东西的副本推送到堆栈上。这些是什么东西????

嗯,他们可能是数字。在第一个示例中,它们几乎肯定是一个坐标对:x 和 y。如果 y 大于 2,则画一条线到 (current-x + y-from-stack, 0)。为什么要这样做????

在第二个示例中,KochR很可能是绘制科赫曲线的递归过程,其中一个参数几乎可以肯定是递归级别,另一个可能是单个线段的长度(除非它非常复杂并提供全局-缩放控制)。

这就是从代码中可以猜到的所有内容,如图所示。HTH。

于 2012-09-12T05:21:14.637 回答
1

您应该首先参考以下四本书/资源:

  1. 蓝皮书”(PDF 0.9 MByte)。
    PostScript 语言教程和食谱,Adobe 系统,Addison-Wesley 1985;国际标准书号 0201101793。

    这是对 PostScript 语言的最佳介绍。PostScript 运算符以一种简单而有节奏的方式引入。示例程序易于阅读,并且可以打印出精美的图片。这本书只描述了 1 级 PostScript 的一小部分。仅靠它本身是不够的专业工作。

  2. 绿皮书”(PDF 0.9 MByte)。
    PostScript 语言程序设计,Adobe Systems,Addison-Wesley,1988;国际标准书号 0201143968。

    这本书展示了如何在现实世界中使用 PostScript。尽管本书基于 1 级 PostScript,但良好的编程实践并没有像语言本身那样发生太大变化。

  3. 红皮书”(PDF 7.6 MByte)。
    PostScript 语言参考手册,Adobe Systems Addison-Wesley,1999;ISBN 0201379228) 912 页。

    这是 PostScript 语言的官方描述。书中的一切都很重要;一切只解释一次。喜欢在床上阅读的人也可以使用纸质版的红皮书。无需在 Adob​​e 的合作伙伴计划中注册的旧版本(日期为 1999 年)可在此处获得。

  4. PostScript 中的思考(PDF 0.8 MByte)。
    格伦·C·里德,艾迪生-卫斯理,1990;国际标准书号 0201523728。

    这本书很好地介绍了 PostScript。这本书是免费提供的。为什么不试试呢?


(以上信息主要取自PostScript FAQ。我拥有并使用过以上所有书籍,并且完全同意给定的评估。)

于 2012-09-11T12:28:56.063 回答