2012-09-11 46 views
0

我被RobertSedwick讀取算法在以下鏈接複製命令中的PostScript

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第一次來這裏。

回答

2

您應該參考以下四個書籍/資源第一:

  1. "Blue Book"(PDF 0.9兆字節)。
    PostScript語言教程和食譜,Adobe Systems,Addison-Wesley 1985; ISBN 0201101793.

    這是對PostScript語言的最好介紹。 PostScript操作符以簡單且步調良好的方式引入。示例程序易於閱讀,並可打印精美的圖片。這本書只描述了1級PostScript的一小部分。對於專業工作本身來說是不夠的。

  2. The "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語言的官方描述。書中的一切都很重要。一切都只解釋一次。對於那些喜歡在牀上閱讀的人來說,紅皮書也可以在紙上找到。一個較舊的版本(日期爲1999年),無需在Adobe的合作伙伴計劃之一註冊,可用here

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

    這本書是對PostScript的一個很好的介紹。這本書是免費的。爲什麼不試試呢?


(以上信息大多是從PostScript FAQ服用。我自己和所有的上述圖書的工作,並能與給定的評估完全同意。)

+0

其實這裏我沒有試圖去學習這門語言。我正在尋找上述命令在鏈接程序中的含義,因爲我是一名C++程序員。 – venkysmarty

1

請參閱Kurt Pfeifle的回答here這個草率的答案的更正版本。但願,我已經有點贖回自己在followup question


更直接地回答你的問題,這是很難解釋的代碼做什麼,因爲它是不完整的。

這兩個片段的開始是2 copy這將堆棧中的前兩項重複。這些是什麼? ??!

嗯,他們可能是數字。在第一個例子中,它們幾乎肯定是一個座標對:x和y。如果y大於2,則繪製一條線(current-x + y-stack,0)。爲什麼要這樣做? ??!

在第二個例子中,KochR最有可能是繪製Koch曲線的遞歸過程,其中一個參數幾乎肯定是遞歸級別,另一個可能是單個線段的長度(除非它是真的複雜並提供全局縮放控制)。

這就是所有可以從代碼中猜出的結果。 HTH。

+0

我有完整的代碼在http://stackoverflow.com/questions/12381887/recurssion-in-postscript – venkysmarty

+0

在上面的描述中提到,y大於2,你能否詳細說明我們爲什麼要檢查2? – venkysmarty

+0

@luser droog:這不完全是我對代碼的理解。在將2個當前頂層元素複製到堆棧後,'2'不再存在。 –

1

(這個答案是基於luser楚格設計的一個,用不同的理解我所提供的代碼。)

更直接地回答你的問題,這是很難解釋代碼不會因爲它不是不完整。

這兩個片段的開始是2 copy這將堆棧中的前兩項重複。這些是什麼? ??! (重複之後,2不再在堆棧上。)

嗯,它們可能是數字。在第一示例中,他們幾乎絕對座標對:x和y:

  • 如果 y是大於 更大 大於或等於X,然後畫一條從當前位置到(y,0)的行 到(current-x + y-stack-0) 。爲什麼要這樣做? ??!

  • 否則執行該年代由省略號{ ... }

在第二示例中所表示的代碼,KochR是最有可能是遞歸過程來繪製科赫曲線,其中的參數之一是幾乎可以肯定的遞歸級別,另一個可能是單個線段的長度(除非它非常複雜並提供全局縮放控制)。

這就是所有可以從代碼中猜出的結果。