gpt4 book ai didi

animation - 流畅的 PostScript 动画

转载 作者:行者123 更新时间:2023-12-04 14:49:53 27 4
gpt4 key购买 nike

我想在 PostScript 中顺利运行动画。看我想要什么,让我直接切换到 PostScript。调用 ghostscript 和

200 dup scale .5 setgray 0 0 3 3 rectfill

我们现在有一个灰色方块。
0 setgray 0 1 3 1 rectfill

里面有一条黑色的条纹。我们现在将填充那个条纹,一次是白色
和黑色相继:
{1 setgray 0 1 3 1 rectfill 0 setgray 0 1 3 1 rectfill} loop

现在您将看到一些闪烁的黑白矩形
比原来的黑色条纹小。理想情况下,我们会看到
原来的灰色方块。或者差不多。我今天在哪里可以获得这样的功能?

查看更有趣的动画序列搜索魔法
大小为 5 的正方形:
wget http://www.complang.tuwien.ac.at/ulrich/gupu/l5.eps.gz
zcat l5.eps.gz | ghostscript -

几年前,我确实尝试解决这些问题。但它从未进入 ghostscript 或 Xfree。看
this page .也许现在有一些更好的想法?

编辑:在阅读到目前为止的回复后,让我在这里澄清一个问题。本质上,这个问题有两个独立的问题:
  • 应该如何从语言层面看动画?我相信,最好的方法是将每个框架视为一个页面。与 copypage可以轻松实现增量更改。可悲的是,copypage 的语义仅存在于Level 1 和Level 2。在Level 3 中,copypage 的含义改为 showpage .我做了 - 许多年前 - little modification to ghostscript将所有可见更改延迟到 copypageshowpage .这样,单个XCopyArea执行包含更改区域的操作 本地在服务器上(即显示器)。
  • 视觉显示上的实际变化应该如何同步,以避免在描述的图形中不存在的伪影?您看到的不规则闪烁不是 PostScript 的特权,它似乎存在于我迄今为止见过的任何双缓冲系统中。只需尝试在您认为合适的任何系统中对其进行编程。

  • 进一步编辑:

    要获得正确的语言级别,即级别 1 或 2(对于 ghostscript):
    systemdict /.setlanguagelevel known {2 .setlanguagelevel} if

    编辑:我添加此评论可能会吸引一些新的 贡献者。

    最佳答案

    我们在 this thread on comp.lang.postscript 中探讨了其中的一些问题。 .

    自 Level 2 标准发布以来,Postscript 是一种垃圾收集语言。您可以使用片段 -2 vmreclaim 禁用用户对象的收集。 ,但它的作用不大。您可以通过使用 -dNOGC 调用来禁用所有 ghostscript 垃圾收集。选项。这应该有助于防止图像的某些部分停顿和吐痰。

    Ghostscript 有一个名为 flushpage 的非标准操作符。 ,它将渲染与执行同步。这有助于确保一切都在消失之前被看到。

    - flushpage -
    On displays, flushes any buffered output, so that it is guaranteed to
    show up on the screen; on printers, has no effect


    对于时序控制,似乎没有比简单的忙等待更好的方法了。

    /smallpause {
    /flushpage where{pop flushpage}if
    50 sleep } def
    /pagepause {
    /flushpage where{pop flushpage}if
    1000 sleep } def

    /sleep {
    usertime add {
    10 {
    1 100000 div pop %busy
    .1 sin 257 cos atan pop %busy busy
    } repeat
    dup usertime le {exit}if
    } loop pop
    } def
    where flushpage 周围的守卫允许您将相同的代码发送到 ghostscript 以外的解释器(如打印机)。

    如果您有实际的 Display Postscript 服务器,您可以使用 wait运算符(operator)而不是忙等待。

    关于animation - 流畅的 PostScript 动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8393604/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com