【问题标题】:Copy command in PostScriptPostScript 中的复制命令
【发布时间】:2012-09-19 03:10:27
【问题描述】:

我正在以下链接阅读 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。

【问题讨论】:

    标签: postscript


    【解决方案1】:

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

    1. "Blue Book"(PDF 0.9 MByte)。
      PostScript 语言教程和食谱,Adobe Systems,Addison-Wesley 1985; ISBN 0201101793。

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

    2. "Green Book"(PDF 0.9 MByte)。
      PostScript 语言程序设计,Adobe Systems,Addison-Wesley,1988 年; ISBN 0201143968。

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

    3. "Red Book"(PDF 7.6 MByte)。
      PostScript 语言参考手册,Adobe Systems Addison-Wesley,1999; ISBN 0201379228) 912 页。

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

    4. Thinking in PostScript(PDF 0.8 MByte)。
      作者:Glenn C. Reid,Addison-Wesley,1990; ISBN 0201523728。

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


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

    【讨论】:

    • 其实这里我并不是想学语言。我正在寻找上述命令在链接中显示的程序中的含义,因为我是 C++ 程序员。
    【解决方案2】:

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

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

    两个 sn-ps 的开头都是 2 copy,它将顶部两个东西的副本推入堆栈。这些是什么东西? ??? (在此复制之后,2 不再在堆栈中。)

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

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

    • Else执行由省略号{ ... }表示的代码

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

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

    【讨论】:

      【解决方案3】:

      请参阅 Kurt Pfeifle 的回答 here 以获得这个仓促回答的更正版本。希望我在followup question

      中有所救赎

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

      两个 sn-ps 的开头都是 2 copy,它将顶部两个东西的副本推入堆栈。这些是什么东西? ??!

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

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

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

      【讨论】:

      • 在上面的描述中提到y大于2,你能详细说明为什么我们用2检查吗?
      • @luser droog:这并不是我对代码的理解。将 2 个当前顶部元素复制到堆栈后,2 不再存在。
      • @KurtPfeifle 是的。我的错。不应该在困的时候写答案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-02
      • 2022-12-23
      • 1970-01-01
      • 1970-01-01
      • 2010-09-13
      • 1970-01-01
      相关资源
      最近更新 更多