¿Quién puede enviarme un artículo en inglés sobre informática y traducirlo?

Una forma de eliminar el parpadeo de la imagen en el diseño de animaciones es utilizar animación de varias páginas. Utilice la tecnología de cambio de página para lograr una animación de varias páginas. El cambio de página cambia la página de visualización para dibujar fotogramas adyacentes de una secuencia de animación determinada. Debido a que la imagen generalmente se dibuja en una página diferente (no en la que está actualmente visible), el usuario no verá la imagen dibujada o borrada. Por tanto, esta tecnología puede producir animaciones de alta calidad sin parpadeos de la imagen. Los pasos detallados para cambiar de página son los siguientes.

1. Seleccione un modo de vídeo con al menos dos páginas de visualización disponibles (por ejemplo, EGA640×200, 16 colores y 4 páginas).

2. Utilice la función -setvideomode() para obtener el modo de vídeo seleccionado. Dibuja el primer fotograma de la secuencia en la página mostrada actualmente (página 0).

3. Cuando necesite dibujar el siguiente fotograma de la secuencia, utilice la función -setactivepage() para configurar la página activa como elemento de visualización alternativo, cambiando solo la página activa (sin cambiar la página visible). ).

4. Dibuja el siguiente cuadro. El marco se dibujará en la página de visualización en espera (página 1), mientras que la página actual (página 0) seguirá mostrándose. Cuando repita este paso más adelante, elimine el marco existente antes de dibujar el nuevo.

5. Después de dibujar un nuevo marco, use la función -setvisualpage() para configurar la página visible como página alternativa. En este punto, la página alternativa se convierte en la página actual.

6. Repita los pasos 3 a 5 hasta completar la secuencia de animación.

El siguiente programa (que utiliza Visual C) demuestra una animación real de varias páginas. La secuencia de animación en el ejemplo está diseñada por el lector.

# incluir ltconio.h gt

# incluir ltgraph.h}

# incluir lttime.h}

#En la definición secuencia El último fotograma de 4/*el número total de fotogramas. */

#Definir código DRAW 1 /* para operaciones de dibujo. */

#Defina los píxeles DELTA-X 10 /* que cambian en cada fotograma. */

#Definir medio segundo 500 /* Retraso de 500 milisegundos entre fotogramas

. */

#Definir el máximo X 600 antes de la terminación /*Posición máxima de X.

*/

#Definir configuración-pantalla\parameters

\ modo de vídeo par-set(-hres 16 colores);\par

#Definir salida de tareas pendientes\par

\ modo de vídeo par-set (modo predeterminado);\par

/* * * *Secuencia de animación de dibujo y cambio de página * * */

#Definir paso de página (v) \par

\ par if(v = = 0)v = 1 \par

else; v = 0;\par

-setactivepage(v);\par

-borrar pantalla(-GCLEARSCREEN);\par

-settextposition(1, 16 ); \par

-outtext( \par "Ejemplo:

Animación de varias páginas"); \par

Marco de dibujo (marco actual, píxel). , píxel ); \par

-setvisualpage(página); \par

Retraso de creación (medio segundo); ; /* Posición actual del carácter. */

int page; /*Mostrar la página actual. */

Fotograma actual /*El fotograma actual mostrado.

*/

Principal()

Configuración-Pantalla

Cuadro en bucle();

Salir de la lista de tareas pendientes

Marco de bucle()

Marco actual = 0

px = 0

py = 85

página = 0;

while(px lt;=MAX-X)

Fotograma actual;

if (fotograma actual gt último fotograma)

Marco actual = 2;

Página (página)

px = px DELTA-X

marco-actual = 1; Pasar página (página)

Marco de dibujo (marco, x, y)

int marco, x, y;

Cambiar (marco)

Caso 1:

Cuadro-1(DRAW, x, y);

Roto;

Caso 2:

Cuadro-2 (dibujar, x, y);

Pausa;

Caso 3:

Cuadro-3 (dibujar, x, y);

Pausa;

Caso 4:

Cuadro-4 (dibujar, x, y);

Pausa;

Crear retardo(td)

/* *Igual que la función retardo(td) en Borland C*

int td

time-t ts1, ts2

ts2 = ts 1 = reloj();

mientras(ts 1 TD gt; ts2)

ts2 = reloj();

p>

73 tupmop 1

Una forma de eliminar el parpadeo de la imagen en el diseño de animaciones es utilizar páginas de animación. Las páginas animadas cambian de página mediante el uso de tecnología. El cambio de página cambia la página de visualización que se dibujará en la secuencia de animación de fotogramas adyacentes. Dado que la imagen generalmente se dibuja en una página diferente (sin poder ver la página actual), el usuario no verá la imagen borrada o dibujada. Por tanto, esta tecnología puede producir animaciones e imágenes de alta calidad sin parpadeos. Los pasos detallados para cambiar de página son los siguientes.

1. Seleccione un programa que pueda usarse en al menos dos páginas del modo de vídeo (por ejemplo, EGA640 × 200, 16 colores 4).

2. Utilice la función -setvideomode() para obtener el modo de vídeo seleccionado. En la página que se muestra actualmente (0), dibuje la secuencia en el primer cuadro.

3. Cuando necesites dibujar la secuencia del siguiente fotograma, utiliza la función -setactivepage() para activar la página y configurarla para que se muestre como copia de seguridad. Simplemente cambia la página activa (invisible).

4. Dibuja el siguiente cuadro. Esta pantalla se dibujará en la página de visualización de respaldo (página 1) y la página actual (página 0) seguirá mostrándose. Repita este paso para la limpieza previa cuando cree nuevos mapas en el futuro para eliminar los marcos existentes.

5. Para mapear un nuevo futuro, use la función -setvisualpage() para ver una página de configuración en la última página. En este punto, la página se ha convertido en una última página.

6. Repita los pasos 3-5 hasta completar la serie de animación.

El siguiente programa (en Visual C) muestra una animación de página real, un ejemplo de una secuencia de animación diseñada por el lector.

#incluye ltconio.h gt

#incluye ltgraph.h)

#incluye lttime.h)

#En la definición secuencia El último fotograma 4 /*Número total de fotogramas. * /

#Definir DIBUJO 1 / * código para operaciones de dibujo.

* /

#Define los píxeles DELTA-X 10 /* que cambian en cada fotograma. * /

#Defina el retraso de medio segundo 500 / * 500 milisegundos entre fotogramas

. * /

#Definir el máximo X 600 antes de la terminación / *Posición máxima X.

* /

#Definir configuración-pantalla\parametros

\ modo de vídeo par-set(-hres 16 colores);\ par

#Definir salida de tareas pendientes\ par

\ modo de video par-set (modo predeterminado);\ par

/****Representación de página y cambio de secuencia de animación * ***/

#Definir paso de página (v) \ par

\ par if(v = = 0)v = 1;\ par

else v = 0; \ par

-setactivepage(v); \ par

-borrar pantalla(-GCLEARSCREEN); , 16);\ par

-outtext (\ par "Ejemplo:

Animación de varias páginas"); \ par

Marco de dibujo (marco actual, píxel, píxeles); \ par

-setvisualpage(página); \ par

create-delay(medio segundo); py; / *Posición actual del carácter. * /

int page; / * Muestra la página actual. * /

Fotograma actual /*El fotograma actual mostrado. * /

Principal()

Configuración-Pantalla

Cuadro en bucle();

Salir de la lista de tareas pendientes

Marco de bucle()

Marco actual = 0

px = 0

py = 85

página = 0;

while(px lt; = MAX-X)

Fotograma actual;

if (fotograma actual gt último fotograma)

Marco actual = 2;

Página (página)

px = px DELTA-X

marco-actual = 1; Pasar página (página)

Marco de dibujo (marco, x, y)

int marco, x, y;

Cambiar (marco)

Caso 1:

Cuadro-1 (DIBUJO, x, y);

Roto;

Caso 2:

Cuadro-2 (dibujar, x, y);

Pausa;

Caso 3:

Cuadro-3 (dibujar, x, y);

Pausa;

Caso 4:

Cuadro-4 (dibujar, x, y);

Pausa;

Crear retraso(td)

/ **Borland c con función de retraso(td) * */

int td

time-t ts1, ts2

ts2 = ts 1 = reloj();

mientras(ts 1 TD gt; ts2)

ts2 = reloj();

p>

73 tupmop 1