Me gustaría ejecutar animaciones en PostScript sin problemas. Para ver lo que quiero, permítame cambiar a PostScript directamente. Llamar a ghostscript, ySmooth PostScript animations
200 dup scale .5 setgray 0 0 3 3 rectfill
Ahora tenemos un cuadrado gris.
0 setgray 0 1 3 1 rectfill
Con una franja negra. Ahora vamos a llenar esa raya, una vez blanco y negro en la serie:
{1 setgray 0 1 3 1 rectfill 0 setgray 0 1 3 1 rectfill} loop
verá ahora algo de parpadeo de rectángulos blancos y negros que son más pequeñas que la franja negro original. Idealmente, veríamos el cuadrado gris original. O casi ¿Dónde puedo obtener esa funcionalidad hoy?
Para ver una secuencia de animación más interesante la búsqueda de cuadrados mágicos de tamaño 5:
wget http://www.complang.tuwien.ac.at/ulrich/gupu/l5.eps.gz
zcat l5.eps.gz | ghostscript -
Un par de años me trató de abordar estas cuestiones. Pero nunca entró en ghostscript o Xfree. Ver this page. Tal vez hay algunas mejores ideas ahora?
Editar: Después de leer las respuestas hasta el momento, quiero aclarar un problema aquí. Esencialmente, hay dos cuestiones independientes en esta pregunta:
¿Cómo se debe ver una animación desde el nivel de idioma? Creo que la mejor manera es ver cada cuadro como una sola página. Con
copypage
, los cambios incrementales se pueden realizar con poco esfuerzo. Tristemente, esa semántica decopypage
solo está presente en el Nivel 1 y 2. En el Nivel 3, el significado decopypage
cambió ashowpage
. Lo hice, hace muchos años, un little modification to ghostscript para retrasar todos los cambios visibles hastacopypage
oshowpage
. De esta manera, un soloXCopyArea
que contiene el área modificada se realiza localmente en el servidor (es decir, la pantalla).¿Cómo se deben sincronizar los cambios reales en la pantalla visual para evitar artefactos que, cuando no está presente en los gráficos descritos? El parpadeo irregular que ve no es un privilegio de PostScript, parece estar presente en cualquier sistema de búfer doble que he visto hasta ahora. Solo trata de programar esto en el sistema que mejor te parezca.
Además de edición:
Para obtener el nivel de idioma correcto, es decir el nivel 1 o 2 do (para Ghostscript):
systemdict /.setlanguagelevel known {2 .setlanguagelevel} if
Editar: Estoy añadiendo este comentario para atraer a algunos nuevos contribuyentes postscript.
Me parece que si desea obtener un "efecto" gris de una serie de muestras blancas y negras, debe sincronizarse con la frecuencia de actualización de la pantalla. A 60 Hz, querrá como máximo 2 "cuadros" de cada uno, 30 Hz por encima del umbral Persistencia de la visión. –
Esto fue solo un ejemplo de prueba donde es evidente lo que debería ser visible y lo que no. Nadie quiere pintar de esa manera (era popular hacerlo con ATARI hace 25 años ...).Lo interesante de esto hoy es ver animaciones discretas como la de arriba (l5.eps) y esto sin ver artefactos que no son parte de la animación. Mírelo: le muestra cómo un programa CLPFD encuentra soluciones a los cuadrados mágicos al enumerar todas las posibilidades ** sistemáticamente **. – false
Hilo reciente sobre [postscript y animación] (https://groups.google.com/forum/#!topic/comp.lang.postscript/olXsoUut2aQ) en un modo * batch *. –